我有两个控制器:Tasksadmins 和 Workers。
我定义了一个表,叫做: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
我想我明白了,因为网址是:localhost:3000/workers/15/edit
(注意:workers
/15/edit)
为了了解问题出在哪里,我在我的models/workers/edit.html.erb
:
hello!
所以我认为问题在于workers
url 中的工作:/
请问我该如何解决?
更新:
这是 的索引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>