Ruby on rails 有两种不同类型的验证,来自rails中的用户或应用程序本身

Ruby on rails 有两种不同类型的验证,来自rails中的用户或应用程序本身,ruby-on-rails,Ruby On Rails,我的程序正在尝试自动创建一些组,前缀为“automated_group”,加载所有组时不会显示,无法编辑,以及其他一些内容。但我必须限制用户这样做。 但如果我创建了一个验证函数,它就不会让我的应用程序执行,group.save返回false。即使在更新其他属性时,它也不允许我保存它,因为名称不会验证 还有别的办法吗?有时使用验证,或者检查谁在更改值 提前感谢您可以使用像cancan()这样的权限系统。然后您可以定义如下内容: can :manage, Group, automated_group

我的程序正在尝试自动创建一些组,前缀为“automated_group”,加载所有组时不会显示,无法编辑,以及其他一些内容。但我必须限制用户这样做。 但如果我创建了一个验证函数,它就不会让我的应用程序执行,group.save返回false。即使在更新其他属性时,它也不允许我保存它,因为名称不会验证

还有别的办法吗?有时使用验证,或者检查谁在更改值


提前感谢

您可以使用像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?