У меня есть приложение, в котором пользователь может иметь несколько друзей и может создавать группы друзей. после того, как пользователь создал frist, и находится на странице показа этой группы, есть форма, которая отображает список друзей с флажком рядом с каждым из них. Пользователь может выбрать друзей, которые будут добавлены в группу, и в представлении будет создан элемент group_member для присоединения каждого из выбранных друзей к текущей группе.Как создать отдельную запись для каждого элемента в массиве
<%= form_for @group_member, :url => {:controller => "groups", :action => 'add_member'} do |f| %>
<% @friends.each do |friend| %>
<tr>
<td><%= check_box_tag "friend_ids[]", friend.id %></td>
<td><%= friend.name + friend.id.to_s %></td>
</tr>
<% end %>
<div class="actions">
<%= f.hidden_field :group_id, :value => params[:id] %>
<%= f.submit %>
</div>
<% end %>
Это, кажется, представление всех параметров, необходимых для каждого group_member к контроллеру
Parameters: {"utf8"=>"✓", "authenticity_token"=>"zg...Bg=", "friend_ids"=>["2", "3"], "group_member"=>{"group_id"=>"4"}, "commit"=>"Create Group member"}
, но у меня возникают проблемы разработки, как я пишу это действие. Мне нужно перебрать элементы в массиве «friend_ids» и для каждого из них создать новый элемент GroupMember. Что-то эффект этого (надеюсь, это даст вам представление о том, что я пытаюсь сделать):
def add_member
friend_ids.each do i
@member = GroupMember.create(:group_id => params[:group_id], :friend_id => i.value)
end
end
это может быть сделано так, как я пытаюсь, и если так, что даже хороший способ сделать это?
Спасибо, что отлично работает –
Добро пожаловать :) – DiegoSalazar