ruby-on-rails 确定belongs_to,has_many关系中字段的唯一性

wgmfuz8q  于 2023-10-21  发布在  Ruby
关注(0)|答案(2)|浏览(108)

我有两个rails活动记录模型组和帐户

group

    has_many :accounts

    id 
    name
    .. other infromation
    timestamps

Account

    belongs_to :group

    id
    name
    .. other information
    timestamps

我需要在accounts部分执行validates:name,:unique => true,但仅在组下。在我希望帐户名称是唯一的下一组。我知道我可以强制执行数据库唯一约束,但我可以使用AR来做到这一点吗?这可能吗

lsmepo6l

lsmepo6l1#

试试这个:

validates :name, uniqueness: true, scope: :group_id

有关可用于验证的选项的更多信息,请查看ActiveRecord Validations documentation

r9f1avp5

r9f1avp52#

我不知道是否接受的答案曾经工作,但截至今天(22.02.2022和轨道5/6/7),它不工作。正如许多人在评论中已经建议的那样,正确的方法是:

validates :name, presence: true, uniqueness: { scope: :group_id }

相关问题