在rails3中默认选择了radio_button

时间:2011-03-23 10:04:35

标签: ruby-on-rails-3

默认情况下是否有更简洁的方法选择radio_button,或者之前是否在一行代码中选择了它?

我首先尝试过这个:

- 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 个答案:

答案 0 :(得分:2)

我可能只是在控制器中设置模型的默认值。不应将这种逻辑放在视图中。我不确切知道这对你有什么用,因为我不知道模型的结构或“默认”值的来源,但是如果在控制器中设置默认值,那么将选择单选按钮如果它符合您案例中的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"

在这种情况下,将选择第一个单选按钮。

答案 1 :(得分:0)

使用radio_button_tag

=radio_button_tag environment_id, env.id, (@job.andand.environment == env)