Как выбрать значение по умолчанию для коллекции переключателей в Formtastic? - PullRequest
5 голосов
/ 27 декабря 2010

Я строю форму в Rails3 и Formtastic. У меня есть следующее поле:

<%= f.input :housing, :as => :radio, :collection => {"Awesome" => "one", "Great" => "two", "Nice" => "three"} %>

, который генерирует HTML, похожий на:

<input id="post_one" name="post" type="radio" value="one" />Awesome</label>
<input id="post_two" name="post" type="radio" value="two" />Great</label>
<input id="post_three" name="post" type="radio" value="three" /> Nice</label>

Это работает безупречно!

Теперь я хотел бы знать, как я могу передать опцию, которая пометит «Великий» как значение по умолчанию (выбранное). Я пытался сделать следующее, но не могу заставить его работать.

<%= f.input :housing, :as => :radio, :collection => {"Awesome" => "one", "Great" => "two", "Nice" => "three"}, :default => "one" %>

Я также попытался передать :selected и :checked вместо :default, но, увы, это не работает.

Кто-нибудь знает способ сделать это?

Спасибо!


Редактировать: Адитья поднимает очень хороший вопрос. Некоторые поиски дали этот полезный совет .

Ответы [ 3 ]

7 голосов
/ 30 ноября 2011

Установите параметры HTML для конкретной опции радиовхода с третьим элементом в массиве для элемента коллекции следующим образом:

<%= f.input :author, :as => :radio, :collection => [["Test", 'test'], ["Try", "try", {:disabled => true}]]
6 голосов
/ 27 декабря 2010

Больше нет возможности сделать это в представлении, правильный способ - инициализировать модель с правильным значением по умолчанию или перевести модель в это состояние в контроллере, как описано Aditya.

6 голосов
/ 27 декабря 2010

Вы пытались установить значение атрибута: housing вашей модели в значение по умолчанию? Вы можете сделать это непосредственно перед запуском формы или в контроллере, или лучший способ сделать это в инициализации модели? Вид не может быть лучшим местом по умолчанию ИМХО.

...