我正在使用 Rails 3.2。我有一个搜索表单,其下方有单选按钮。它根据选择的单选按钮进行搜索。目前我认为:
= radio_button_tag(:ad_type, "free")
= label_tag(:ad_type_free, "free")
= radio_button_tag(:ad_type, "paid")
= label_tag(:ad_type_paid, "paid")
= radio_button_tag(:ad_type, "featured")
= label_tag(:ad_type_featured, "featured")
所以我的问题是,如何设置要选择的默认单选按钮?我尝试过使用radio_button_tag(:ad_type, "free", :checked => true)
,但在提交表单后,它总是选择那个单选按钮。我想要的是根据先前的请求选择值。我应该从 url 参数中获取值吗?如果是这样,我如何设置初始默认值(当没有以前的搜索时)?非常感谢。
更新
我创建了一个辅助方法 ad_type_selected?
def ad_type_selected?(ad_type)
selected_ad_type = params[:ad_type] || "free"
(selected_ad_type == ad_type) ? true : false
end
我认为这是:
= radio_button_tag(:ad_type, "free", :checked => ad_type_selected?("free"))
但是,单选按钮仍然没有被选中。检查日志,我看到对助手的第一次调用返回 true,其他返回 false,这正是我想要的。但问题是它仍然没有选择单选按钮。如果我检查输入标签,我只能看到已检查的属性设置为“已检查”。