gpt4 book ai didi

ruby-on-rails - 在 Rails 中使用角色进行验证

转载 作者:行者123 更新时间:2023-12-04 05:53:36 24 4
gpt4 key购买 nike

是否可以使用用于 attr_accessibleattr_protected 的角色?我正在尝试设置一个仅在不是管理员时执行的验证(例如这种 http://launchware.com/articles/whats-new-in-edge-scoped-mass-assignment-in-rails-3-1 )。例如:

class User < ActiveRecord::Base
def validate(record)
unless # role.admin?
record.errors[:name] << 'Wrong length' if ...
end
end
end

user = User.create({ ... }, role: "admin")

最佳答案

在查看并深入研究源代码之后,似乎在创建 Active Record 对象时传入的角色是通过 protected 方法 mass_assignment_role 公开的。因此,有问题的代码可以重写为:

class User < ActiveRecord::Base
def validate(record)
unless mass_assignment_role.eql? :admin
record.errors[:name] << 'Wrong length' if ...
end
end
end

user = User.create({ ... }, role: "admin")

关于ruby-on-rails - 在 Rails 中使用角色进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14390439/

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