Rails 6 -在允许用户创建新表单之前添加一个条件



我已经在控制器中工作了条件,但想将逻辑/条件移动到模型中。

我有一个简单的表单,在控制器的新方法中我检查用户是否已经提交,如果是,我不允许他创建一个新的提交。如果用户之前有提交,我将显示一个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

最新更新