0

check_box_tag我有一个用( <%= check_box_tag "user_ids[]", user.id %>)创建的复选框列表。现在我想遍历控制器中基于 users_ids 的所有复选框并插入所有选定用户的数据。

4

1 回答 1

2

正如 Meltemi 所说,在 ruby​​ 中迭代的常用方法是.each. 在您的情况下,在接收表单的控制器中可能是这样的:

params[:user_ids].each do |user_id|
  u = User.find(user_id)
  u.do_something_to_that_user  #call a method or some such on the user
  something_else.users << u    #associate that user with something else
end

或者,一次完成所有这些通常会更有效,尽管其确切形式取决于您对用户所做的事情。例如,如果您想将选中的用户与某些记录相关联:

Record.user_ids = params[:user_ids]

或者,如果您想以某种方式更新所有这些用户:

User.where(:id => params[:user_id]).update_all(:attribute => some_value)
于 2012-10-16T15:52:39.530 回答