Установка родителя в ассоциации rails own_to

У меня есть две модели, Player и Team. Игрок принадлежит команде, однако в команде нет_многих игроков, потому что меня не интересует список игроков команды. Я создаю ассоциацию только для того, чтобы один раз обновить поля команды (например, это week_one_opponent) и сделать так, чтобы она распространялась на всех игроков этой команды.

Мой вопрос: из новых или редактируемых форм игрока, как я могу установить команду игрока, указав имя команды в форме? Например. если игрок «Трент Ричардсон», которого только что обменяли из «Браунс» в «Кольтс», я хочу иметь возможность перейти на его страницу «Редактировать» и изменить поле команды с «Браунс» на «Кольтс».

Спасибо


person jackerman09    schedule 21.09.2013    source источник


Ответы (1)


Попробуй это:

<%= form_for @player do |f| %>
<%= f.collection_select :team_id, Team.all, :id, :name, {}, { :multiple => false } %>
<% end %>

Это предполагает, что у вас есть атрибут в вашей модели Team под названием name. Убедитесь, что вы добавили ссылку на команду в модель игрока.

Если вы используете Rails 3, вы должны добавить :team_id к attr_accessible, если вы используете Rails 4, вы должны добавить :team_id к сильным параметрам в пользовательском контроллере.

person miler350    schedule 21.09.2013
comment
Быстрый дополнительный вопрос: как сделать параметр в раскрывающемся списке бесплатным, чтобы пользователь мог выбрать команду, но также не мог выбрать команду? Еще раз спасибо - person jackerman09; 21.09.2013
comment
Попробуйте передать :include_blank => true как вариант. Вот так: { :multiple => false, :include_blank => true} - person miler350; 21.09.2013
comment
Хм, кажется, это не добавило опцию для пустого места. Любые мысли о том, что это не сработало бы? Еще раз спасибо - person jackerman09; 22.09.2013