在编写一个自定义验证方法时,您可以使用 Active Record 模型的一些参数来检查模型中的数据是否符合预期。以下是实现自定义验证方法的一般步骤:
在 Rails 中,您可以使用 validate_associated 方法对 Active Record 模型的关联对象进行验证。对于非关联对象的规则,可以使用 validate 方法定义规则。
在自定义验证方法中,您可以使用 @errors 变量存储违反验证规则的信息。当验证失败时,模型将自动调用该方法并设置 @errors 变量的状态。然后您可以使用该变量来显示错误消息。
如果您需要在自定义验证方法之前执行其他操作,可以使用 before_validation 方法。例如,您可以在该方法中对模型属性进行更改。
以下是一个使用 Active Record 模型的自定义验证方法的例子:
class Person< ActiveRecord::Base
validates :name, presence: true, unless: -> { params[:id].blank? }
validate :age_greater_than_18, on: :create, unless: -> { params[:id].blank? }
before_validation :uppercase_city_name
private
def uppercase_city_name
self.city_name = city_name.upcase
end
end
这个例子定义了一个名为 Person 的模型,它通过以下方式来验证属性:
领取专属 10元无门槛券
手把手带您无忧上云