Rails выбрать помощник - установить по умолчанию? - PullRequest
0 голосов
/ 26 июня 2011

Рельсы 2.3.11

Я сделал прочитал этот ответ , но он не работает для меня.

Мне бы хотелось, чтобы по умолчанию для этого поля выбора была event_id, переданная через URL.

f.select :event_id, @events, :selected => url_args["event_id"]

Пример @events: [["SC 2 Tournament", 195], ["Obstacle Course", 196], ["Mortal Combat", 197]]

Следующее также не сработало:

  • добавление ".to_i" к "url_args [" event_id "
  • использование options_for_select (@events, url_args ["event_id"]

Спасибо!

1 Ответ

2 голосов
/ 26 июня 2011

Это намного проще, если вы используете помощник collection_select:

f.collection_select :event_id, @events, :id, :name

Затем, чтобы выбрать параметр по умолчанию (и он будет выбран при загрузке страницы), вы можете просто назначить его любому объекту, для которого предназначена форма в контроллере. например, вот так:

def new
   @events = Event.all
   @thing = Thing.new(:event => @events.first)
end

Я не уверен, откуда взялся ваш url_args, но я предполагаю, что это, вероятно, из параметра в URL, и в этом случае вы можете сделать это:

Thing.new(:event_id => params[:event_id])

И последнее: collection_select не совсем будет работать с @events, как вы его указали, поскольку вы используете вложенный массив, когда он ожидает массив объектов, который он может вызвать id, и name включено, чтобы получить значения и отобразить текст для опций выбора. Чтобы это исправить, просто переопределите @events в вашем контроллере, используя один из искателей ActiveRecord, например Event.all или Event.find(..).

Имеет смысл?

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