默认情况下是否有更简洁的方法选择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
但问题是如果默认选择是在作业的环境之后,它将选择默认选择。
还有其他建议吗?
答案 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)