0

check_box_tag( )で作成したチェックボックスのリストがあり<%= check_box_tag "user_ids[]", user.id %>ます。ここで、コントローラーのusers_idsに基づいてすべてのチェックボックスをループし、選択したすべてのユーザーのデータを挿入します。

4

1 に答える 1

2

Meltemiが言うように、ルビーで反復する通常の方法はです.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 に答える