#ruby-on-rails-3 #forms #checkbox
#ruby-on-rails-3 #формы #флажок
Вопрос:
Я пытаюсь создать форму, в которой будут перечислены все пользователи и которая позволит вам проверять тех, кого вы хотите добавить в команду. Вот мой первый разрез формы:
<div id="add_team_mates">
<%= form_tag do %>
<%= will_paginate @users %>
<ul class="users">
<% @users.each do |user| %>
<li>
<%= gravatar_for user, :size => 30 %>
<%= link_to user.name, user %>
<%= check_box_tag("add", user.id) %>
</li>
<% end %>
</ul>
<%= submit_tag "Add Team Mates", :action => "add_team_mates" %>
<% end %>
</div>
И прямо сейчас это все, что у меня есть в контроллере:
def add_team_mates
end
Проблема в том, что если я проверяю нескольких пользователей, я получаю только последний user.id как я и ожидал, вместо multiple. Вот некоторый пример из журнала:
Started POST "/teams/5" for 127.0.0.1 at 2011-04-14 15:28:13 -0700
Processing by TeamsController#add_team_mates as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"IHFDevfKES8NibbCMlRa1t9qHn4/ZMKalK1Kjczh2gM=", "add"=>"3", "commit"=>"Add Team Mates", "id"=>"5"}
Completed in 12ms
Любая помощь по этому вопросу была бы с благодарностью принята. Спасибо!
Ответ №1:
Все ваши флажки имеют одинаковое имя, измените строку на check_box_tag("add[]",user.id)
В контроллере ваши параметры будут такими:
params[:add] = ['foo','bar','baz']
Комментарии:
1. Идеальный. Это сделало свое дело. Теперь мне просто нужно выяснить логику для контроллера 🙂