Rails允许您为模型编写自定义验证方法。当您需要验证器并执行为其定义的操作时,将调用验证器。可以使用validates_with CustomValidator
或validates :attribute, custom_validator: true
等来调用这些验证器。
您还可以从关联的控制器中调用模型的类方法。使用这些助手和直接从控制器调用对象上的验证器方法有什么区别,比如Model.custom_validator(params)?
这些助手是否能保持控制器的精益,还是有更根本的原因?
答案 0 :(得分:1)
可以使用
调用这些验证程序validates_with CustomValidator
或validates :attribute, custom_validator: true
错误。这些是定义验证的方法,而不是调用它们。验证会自动触发。例如,在每次保存之前。
实际上,两个都是。验证逻辑不属于控制器。它应该在模型中完成,或者,如果你是那种人,可以在form objects中完成。控制器应该关心解析params,强制执行身份验证,呈现正确的视图等。他们甚至不应该知道验证。这些助手是否能保持控制器的精益,还是有更根本的原因?