我在使用Simple_Form與Rails 3,它很棒。我有一個簡單的問題。如果類型是幕後布爾值,我可以使用f.input
創建一個複選框。但是,我希望它被預選爲真實。使用Rails 3預選複選框Simple_form
有沒有辦法通過視圖做到這一點?
我在使用Simple_Form與Rails 3,它很棒。我有一個簡單的問題。如果類型是幕後布爾值,我可以使用f.input
創建一個複選框。但是,我希望它被預選爲真實。使用Rails 3預選複選框Simple_form
有沒有辦法通過視圖做到這一點?
最好的辦法是設置在你的模型中的默認值,像
create_table :my_table do |t|
...
t.boolean :my_boolean, :default => true
...
end
這simple_form
會挑上,並設置複選框默認選中。
更簡單的方法就是像Dave說的那樣做,只需強制將值設爲1,但如果驗證失敗,並且您再次顯示該表單,則仍然會檢查該表單,而不管表單在表單顯示時的樣子已提交。
這應該工作:
= f.input :some_flag, :input_html => { :value => '1' }
-1因爲真的會搞亂任何數據庫表格編輯,所以這真的不是好建議。 – 2011-07-19 16:01:50
真的嗎?老兄問如何在視圖中設置它。它從哪裏說他將要編輯它? – 2011-08-25 01:00:48
Hi Dave,在rails中,視圖代表瀏覽器中顯示的前端html。當Drew說「如果這個類型是幕後布爾類型」,這似乎暗示這是違背活動記錄模型的,並且對任何活動記錄模型使用複選框似乎意味着他希望編輯/更新屬性。我會避免低估你,因爲這看起來有點小氣。 – 2011-08-27 19:08:49
如果你不想,或無法更新您的遷移做「PerfectlyNormal的答案,那麼你可以添加以下到您的f.input結束:
:input_html => { :checked => true }
所以,它會成爲:
= f.input :some_flag, :input_html => { :checked => true }
希望有所幫助!
它的工作對我來說這只檢查一個複選框與「無」
<%= f.input :notify, label: "Notification", as: :check_boxes, collection: ["None", "Daily", "Weekly", "Monthly", "Quarterly", "Yearly"], :item_wrapper_class => 'inline', :checked => ["None", true] %>
我只是絆了這篇文章,什麼工作對我來說是類似於最新的應答值 - 但短。剛剛初始化對象與所希望的設置:
def new
Object.new(my_boolean: true)
end
實際上它可以工作,但它涉及更多的數據庫默認值。我認爲這裏最好的選擇是隻在客戶端通過以下方式選擇值:input_html => {:checked => true} – coorasse 2014-03-10 17:09:29
這是一個更好的答案。 – allesklar 2014-08-12 09:48:50