我在views/admins/index.html.erb
按下User
后,我尝试更新role_ids单元格中的update
表:
如果worker.role_ids
为[1],则会更改为[2]。
如果worker.role_ids
为[2],则会更改为[1]。
<td><%= worker.email %></td>
<td><%= worker.role_ids %></td>
<td><%= link_to 'edit', edit_admin_path(worker) %></td>
我可以定义edit
和_form
,但没有优雅的方法吗?
答案 0 :(得分:2)
你可以通过Ajax(我认为这是你正在寻找的)。您可以调用远程操作,传递对象的id,并调用方法以更新为相应的值。例如:
查看
<%= link_to 'Change Role', change_admin_role_path(worker.id), :remote => true %>
控制器
def change_admin_role
@worker = User.find(params[:id])
@worker.change_role
end
请记住添加路径,同时在用户模型中创建方法change_role ,它将评估实际值并进行更改,创建change_admin_role .js.coffee (或change_admin_role.js.erb)通过Ajax对视图进行更改。