2016-11-29 121 views
4

我有一個模型和變更集方法。我想要一個可選字段,如果它沒有傳遞給費用集,我想要設置一個默認值。我怎樣才能做到這一點?變更集中字段的默認值

+1

如何在發送'cast'之前執行'params = Map.put_new(params,「field」,default_value)''? – Dogbert

+0

@Dogbert,tnks。 – Kooooro

+0

@Dogbert這是公認的違約方式嗎?例如,用戶的角色:'params = Map.put_new(params,:role_id,2)' – phil

回答

8

當您創建模式時,可以通過將:default原子傳遞給它來給它一個默認值。

schema "foo" do 
    field :name, :string, default: "bar" 
end 
+0

你能否像這樣默認一個關聯? – phil

+2

是的。請記住,默認密鑰是在編譯時計算的。因此,如果您執行數據庫訪問來查找外鍵,它將僅在編譯時訪問數據庫,而不是每個插入。 –