2016-11-29 85 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

是的。请记住,默认密钥是在编译时计算的。因此,如果您执行数据库访问来查找外键,它将仅在编译时访问数据库,而不是每个插入。 –