Ruby on rails 有两种不同类型的验证,来自rails中的用户或应用程序本身
我的程序正在尝试自动创建一些组,前缀为“automated_group”,加载所有组时不会显示,无法编辑,以及其他一些内容。但我必须限制用户这样做。 但如果我创建了一个验证函数,它就不会让我的应用程序执行,group.save返回false。即使在更新其他属性时,它也不允许我保存它,因为名称不会验证 还有别的办法吗?有时使用验证,或者检查谁在更改值Ruby on rails 有两种不同类型的验证,来自rails中的用户或应用程序本身,ruby-on-rails,Ruby On Rails,我的程序正在尝试自动创建一些组,前缀为“automated_group”,加载所有组时不会显示,无法编辑,以及其他一些内容。但我必须限制用户这样做。 但如果我创建了一个验证函数,它就不会让我的应用程序执行,group.save返回false。即使在更新其他属性时,它也不允许我保存它,因为名称不会验证 还有别的办法吗?有时使用验证,或者检查谁在更改值 提前感谢您可以使用像cancan()这样的权限系统。然后您可以定义如下内容: can :manage, Group, automated_group
提前感谢您可以使用像cancan()这样的权限系统。然后您可以定义如下内容:
can :manage, Group, automated_group: false
我已经找到了答案的一半 在我的控制器中:
def get_automated_group
name = "automated_group_#{product.id}"
group = Group.find(name: name).first
group Group.new(automated_creation: true) unless group.blank?
returrn group
end
更新时:
我将在check_automated_name函数中检查名称是否发生任何更改:
group.name_changed?
因此,除了“name”之外,其他任何东西都可以更新,唯一的创建方法是从rails本身进行更新。ha,这是一个好方法,问题是我不想在db中添加另一个属性,如果我添加了,我可以在我的验证函数中检查它,如果automated\u group是真的,就可以保存它
group.name_changed?