【发布时间】:2020-04-03 23:51:20
【问题描述】:
我的用户模型中有以下内容:
def changeset(user, attrs) do
user
|> cast(attrs, [:login, :email])
|> validate_required([:login, :email])
|> unique_constraint(:login)
|> unique_constraint(:email)
end
但是,仅以这种方式设置 unique_contraint 是行不通的。在测试我的控制器时,我仍然收到重复登录和电子邮件。
我得到了这个工作,但我必须将 :unique 关键字参数放在模型架构中的 true 中,并在迁移中为每列创建一个唯一索引。
除了 PostgreSQL 唯一索引之外,Ecto 是否不检查约束本身?在changeset/2 函数中添加unique_constraint 有什么意义吗?
【问题讨论】:
标签: postgresql elixir phoenix-framework ecto