выбранная по умолчанию кнопка радио_ в rails3 - PullRequest
1 голос
/ 23 марта 2011

Есть ли более чистый способ выбора кнопки радио_ по умолчанию или если она была ранее выбрана в одной строке кода?

Я впервые попробовал это:

- if @job.new_record?
  = f.radio_button :environment_id, env.id, :checked => env.is_default
- else
  = f.radio_button :environment_id, env.id, :checked => @job.environment == env

Я попытался рефакторинг, используя это:

= f.radio_button :environment_id, env.id, :checked => (@job.andand.environment == env) || env.is_default

но проблема в том, что если по умолчанию выбран ПОСЛЕ окружения задания, он выберет выбор по умолчанию.

Любые другие предложения?

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Я бы, вероятно, просто установил значение по умолчанию для модели в контроллере. Эту логику не следует размещать в представлениях. Я не знаю точно, как это будет работать для вас, потому что я не знаю структуру ваших моделей или откуда берется значение «по умолчанию», но если вы установите значение по умолчанию в контроллере, тогда будет выбран переключатель если он соответствует env.id в вашем случае

# In Controller
@job = Job.new(:environment_id => "foo")

# In the view
= f.radio_button :environment_id, "foo"
= f.radio_button :environment_id, "bar"

В этом случае будет выбран первый переключатель.

0 голосов
/ 23 марта 2011

использовать radio_button_tag

=radio_button_tag environment_id, env.id, (@job.andand.environment == env)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...