我已经在控制器中工作了条件,但想将逻辑/条件移动到模型中。
我有一个简单的表单,在控制器的新方法中我检查用户是否已经提交,如果是,我不允许他创建一个新的提交。如果用户之前有提交,我将显示一个flash消息。
现在,我需要将逻辑移动到模型。我如何从模型中调用函数?
感谢您可以将自己的验证器添加到模型中。
您可以创建一个Validator类,它携带您正在寻找的特定检查,并通过validates_with
在模型上分配它。
class GoodnessValidator < ActiveModel::Validator
def validate(record)
if record.first_name == "Evil"
record.errors.add :base, "This person is evil"
end
end
end
class Person < ApplicationRecord
validates_with GoodnessValidator
end