【发布时间】:2011-01-25 21:51:39
【问题描述】:
我有两个模型:用户和课程。我只想将课程分配给管理员用户。
确保这一点的最佳方法是什么?我目前正在尝试创建一个自定义验证器,如下所示:
class BelongsToAdminValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
unless value.admin?
object.errors[attribute] << (options[:message] || "must belong to an admin")
end
end
end
但这导致 Rspec 说:
undefined method `admin?' for nil:NilClass
这是有道理的。
自定义验证器是最好的方法吗?或者我应该检查要分配的用户是否是控制器中的管理员?
【问题讨论】:
-
admin?是在User中定义的方法吗?也许应该是unless object.admin?? -
这是一个自动获取“?”的布尔值方法。
标签: ruby-on-rails activerecord rspec bdd