Не более одного vaule, передаваемого из формы в рельсах из нескольких блоков collection_select - PullRequest
0 голосов
/ 31 марта 2012

У меня есть игроки и оборудование, которые находятся в отношениях HABTM. Это хорошо работает, однако, когда я пытаюсь добавить более одного игрока в прибор, используя следующее в моем представлении создания нового прибора:

<li>Player 1<%= f.collection_select(:player_ids, Player.all, :id, :first_name, :prompt => true) %></li>

Представлен только один игрок.

Контроллер

У меня есть это на данный момент в моем контроллере прибора

def create

@fixtures = Fixture.new(params[:fixture])
if @fixtures.save
  flash[:notice] = "Fixture Created"
  redirect_to(:action =>'list')
else
  render('new')
 end
end

Просмотр

<%=form_for(@fixtures, :url => {:action =>'create'}) do |f| %>
<li>Player 1<%= f.collection_select(:player_ids, Player.all, :id, :first_name, :prompt => true) %></li>
<li>Player 2<%= f.collection_select(:player_ids, Player.all, :id, :first_name, :prompt => true) %></li>
<li>Player 3<%= f.collection_select(:player_ids, Player.all, :id, :first_name, :prompt => true) %></li>

Может ли кто-нибудь помочь мне? Я бы предпочел флажки или поле множественного выбора, где я мог бы удерживать Shift, однако я нахожу их действительно сложными в использовании. Это мне удалось передать значения.

Спасибо

Если кому-то нужна дополнительная информация о контроллерах или моделях, я могу отредактировать ее в вопросе

1 Ответ

0 голосов
/ 31 марта 2012

Вам необходимо соответствующее именование полей.Каждый выбор должен иметь имя, например fixture[player_ids][]

Я сомневаюсь, что это возможно с помощью метода #collection_select, попробуйте вместо него более общий #select_tag

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