【发布时间】:2015-08-15 19:21:02
【问题描述】:
我正在尝试通过单击“创建用户”按钮从一长串用户中更新用户的状态,该按钮会将用户的“状态”从“管理员”更新为“用户”。但是,我使用的代码仅将第一个用户从“管理员”更新为“用户”,无论我按下哪个按钮。
我相信错误在控制器中,在更新的第一行。
如何使更新功能选择我单击“创建用户”的记录并更新它,而不是列出的第一条记录?谢谢!
控制器
def index
@user = User.find(params[:id])
end
def update
@user = User.find_by(params[:id])
@user.update_attributes(update_user_params)
redirect_to '/dashboard/users'
end
问题一定出在 (params[:id]) 中。 表单代码
<% @user.each do |user| %>
<tr id="dashfield">
<td><%= user.first_name%></td>
<td><%= user.last_name %></td>
<td><%= user.email %></td>
<td><%= user.role %></td>
<td><%= form_for user, method: :put do |f|%>
<%= f.hidden_field :role, :value => 'user'%>
<%= f.submit 'Make User'%>
<%end%><%= form_for user, method: :put do |f|%>
<%= f.hidden_field :role, :value => 'admin'%>
<%= f.submit 'Make Admin'%>
<%end%></td>
</tr>
<% end %>
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4.1