我正在使用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 params中獲得值嗎?如果是這樣,我如何設置初始默認值(當沒有以前的搜索時)?非常感謝。
更新
我創建了一個輔助方法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,這正是我想要的。但問題是它仍然不選擇單選按鈕。如果我檢查輸入標籤,我只能看到checked屬性設置爲「checked」。
但PARAMS [:AD_TYPE]包含一個字符串,那麼我應該使用params [:ad_type] ==「free」?真假 ?併爲所有單選按鈕重複此操作? – maru
這對我來說是正確的...玩它,看看它是如何發展。 – niiru
或者你可以做些像params [:ad_type] .present?如果它不是null或false,它將返回true – basgys