【发布时间】:2018-03-09 12:50:10
【问题描述】:
我有三种用户类型:
enum role: { staff: 0, clinician: 1, admin: 2 }
每个员工用户都属于一所大学,并在注册时选择他们所在的大学。我想强制执行模型验证,要求员工用户提供 university_id。
为了实现这一点,我在 app/models/concerns/staff_user.rb 中有这一行
validates :university_id, presence: true, if: staff?
这是整个文件:
require 'active_support/concern'
module StaffUser
extend ActiveSupport::Concern
included do
belongs_to :university
has_many :patients
has_many :referral_requests
validates :university_id, presence: true, if: staff?
end
class_methods do
end
end
但是,当我这样做时,我收到以下错误:
method_missing':未定义的方法人员?' for User(调用'User.connection'建立连接):Class (NoMethodError)
我是否需要进一步说明是否:员工?如果有,怎么做?
谢谢!
【问题讨论】:
-
:staff?或staff?,你的问题不清楚,但如果是后者,那就是你的问题。 -
目前写作“员工?”。 :职员?引用枚举,所以应该解决它 - 谢谢!
标签: ruby-on-rails enums roles