Tasksadmins と Workers の 2 つのコントローラーがあります。
Tasksadmin という名前のテーブルを定義し、パラメーターを持っています: admin_email、worker_email、task、done です。完了オプションはチェックボックスです。
Tasksadmins コントローラーで、次のように定義しました。
def edit
@tasksadmin = Tasksadmin.find(params[:id])
end
このコントローラーでは、テーブルのすべての行を編集できます。それはうまくいきます!
Workerscontroller で、次のように定義しようとしました。
def edit
@tasksadmin = Tasksadmin.find(params[:id])
end
行のパラメータを全て取得したいので行いましたが、 のパラメータのみ変更するオプションをワーカーに持たせますdone
。
残念ながら、次のエラーが発生しました。
ActiveRecord::RecordNotFound in WorkersController#edit
Couldn't find Worker with id=15
URLが次のとおりであるため、取得したと思います。localhost:3000/workers/15/edit
(注意: workers
/15/編集)
問題がどこにあるかを理解するために、次の単語を my に書きましたmodels/workers/edit.html.erb
。
hello!
問題はURLの作業にあると思いますworkers
:/
どうすれば修正できますか?
アップデート:
これは のインデックスですworkerscontroller
:
def index
@tasks_worker = Tasksadmin.where(:worker_mail => current_user.email)
respond_to do |format|
format.html # index.html.erb
format.json { render json: @workers }
end
end
これはindex.html.erb
:
<h1>Listing workers</h1>
<table>
<tr>
<th>Admin_mail</th>
<th>Task</th>
<th>Done</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @tasks_worker.each do |task| %>
<tr>
<td><%= task.admin_mail %></td>
<td><%= task.task %></td>
<td><%= task.done %></td>
<td><%= link_to 'Edit', edit_worker_path(task) %></td>
</tr>
<% end %>
</table>