0

我想验证在我的应用程序中总是有至少一个角色为moderator的用户。使用回调验证

我有两个回调和方法:

before_save :ensure_one_moderator_always_present, if: :role_changed? 
before_destroy :ensure_one_moderator_always_present 

def ensure_one_moderator_always_present 
    if all_active_moderators.where.not(id: self.id).size =< 1 
    errors.add(:content, "There always needs to be at least one manager.") 
    end 
end 

我以为添加错误消息就像我在做的方法上面将停止交易酷似验证,但事实并非如此。

我在做什么错误/我应该如何完成上述?

回答

0

返回假后errors.add否则真

def ensure_one_moderator_always_present 
    if all_active_moderators.where.not(id: self.id).size =< 1 
    errors.add(:content, "There always needs to be at least one manager.") 
    false 
    end 
    true 
end