我正在使用设计用户模型(使用rails 4)。这是我目前的用户模型。我想要的是一个验证,它不允许:super_admin在以下情况下为true:admin为false。以下是该模型的当前版本:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable
validate :if_super_admin_then_must_be_admin
def if_super_admin_then_must_be_admin
if :super_admin && !:admin
errors.add(:admin, "can't be false if :super_admin is true.")
end
end
end
我的rspec测试失败,如果:super_admin为true并且:admin为false,则模型可以有效。我使用控制台仔细检查了它,所以问题不在规范中。
答案 0 :(得分:0)
修正了它:
def if_super_admin_then_must_be_admin
if self.super_admin? && !self.admin?
errors.add(:admin, "can't be false if :super_admin is true.")
end
end