如何将belongs_to限制为仅限特定类型的用户?

时间:2015-08-17 19:42:04

标签: ruby-on-rails associations

我正在尝试在我的模型上设置belongs_to关联,例如:

belongs_to :user

但我想将此限制为仅限某种类型的用户(例如user.role == "admin"

我曾尝试使用belongs_to :user, -> { where(role: "admin") },但似乎无法正常使用。

任何其他类型的用户都无法进行此关联。

我怎么能这样做?感谢。

1 个答案:

答案 0 :(得分:2)

在评论模型上创建验证

class Comment < ...

validate :user_is_admin

private

def user_is_admin
  errors.add(:user, "user must be admin") unless user && user.is_admin?
end

end