gpt4 book ai didi

ruby-on-rails - rails accepts_nested_attributes_for 和验证... Rails 2.3.11

转载 作者:行者123 更新时间:2023-12-04 03:35:38 26 4
gpt4 key购买 nike

我有两个模型

class Group < AR
has_many :permissions
accepts_nested_attributes_for :permissions, :allow_destroy => true
end

class Permission < AR
validates_uniqueness_of :action, :scope => [:role]
end

我似乎无法在创建新组时获得对工作权限的唯一约束,只能在更新时获得。这是一个示例输出。有谁知道验证嵌套属性和唯一约束的最佳方法吗?

样本输出
> g = Group.create(:permissions_attributes => [{:role => 'admin', :action => 'one'}])
> # Now add the same permissions, should not be valid
> g.permissions_attributes = [{:role => 'admin', :action => 'one'}]
> g.valid? # => false

这是预期的。但是,如果我使用相同的 permissions_attributes 创建组两次,它不会失效:
> g = Group.new(:permissions_attributes => [{:role => 'admin', :action => 'one'}, {:role => 'admin', :action => 'one'}]
> g.valid? # => true BUT THIS SHOULD BE FALSE!!
> g.save # => true Oh Nos!!!

最佳答案

class Group < AR
has_many :permissions
accepts_nested_attributes_for :permissions, :allow_destroy => true
validates_associated :permissions
end

关于ruby-on-rails - rails accepts_nested_attributes_for 和验证... Rails 2.3.11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5396273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com