Rails 3 формируют только возвращающий последний элемент - PullRequest
0 голосов
/ 15 апреля 2011

Я пытаюсь создать форму, которая будет перечислять всех пользователей и позволять вам проверять тех, кого вы хотите добавить в команду. Вот мой первый разрез в форме:

<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, а не несколько, как я и ожидал. Вот пример из журнала:

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 Ответ

2 голосов
/ 15 апреля 2011

Все ваши флажки имеют одинаковое имя, измените строку на check_box_tag("add[]",user.id)

В контроллере ваши параметры будут выглядеть так:

params[:add] = ['foo','bar','baz']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...