动态模型验证

Kyl*_*cot 2 ruby validation ruby-on-rails ruby-on-rails-3

我想为我的一个模型创建一些验证,其中包含位置信息(街道,地点,邮政编码等).我希望能够根据选择的国家/地区更改验证规则.

例如,postal_code的验证规则对于美国和加拿大将是不同的.此外,一些国家没有邮政编码,因此不需要验证规则.

我将如何实现这样的事情?

don*_*ngg 6

将其放入模型中以运行任何自定义逻辑进行验证.

validate :location_should_be_valid

def location_should_be_valid

  # run all your custom logic here

  # if it isn't valid, add an error indicating why
  if country == "Canada"
    errors.add(:postal_code, "Invalid postal code for Canada") if postal_code.length != 7
  end
end
Run Code Online (Sandbox Code Playgroud)

在Rails指南中了解更多相关信息:http:
//guides.rubyonrails.org/active_record_validations_callbacks.html#creating-custom-validation-methods