我被這個難住了..我正在使用這個:
<%= f.collection_select :project_type, @project_types, :name, :name, {:selected => "Other"}, class: 'form-control selectpicker', data: { 'live-search' => 'true' } %>
在用戶創建新專案時將專案型別設定為默認值。但是當我編輯該專案時,它默認回傳為 :selected => 設定的任何內容。
我的問題是,我是否可以在“編輯”或“創建”中添加某種型別的條件,在編輯時不會更改我的資料。或者是否有不同的方法來設定具有與 :selected => 不同的行為的默認值
uj5u.com熱心網友回復:
我認為最好的方法是在物件本身上設定默認值并selected從 中洗掉選項collection_select,因此在創建新物件的控制器操作中可以設定它:
Model.new(project_type: 'other')
您還可以在資料庫本身中設定默認值,這應該可以正常作業,或者使用一些 ActiveRecord 方法來做到這一點:
Rails:如何在 ActiveRecord 中設定默認值?
或者另一種選擇是將其設定為collection_select:
<%= f.collection_select :project_type, @project_types, :name, :name, { selected: (f.object.project_type || "Other") }, class: 'form-control selectpicker', data: { 'live-search' => 'true' } %>
替換f.object為您可能已經擁有的實體變數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/471108.html
