Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 基于另一个属性验证一个属性的值';s值_Ruby On Rails_Validation_Activerecord - Fatal编程技术网

Ruby on rails 基于另一个属性验证一个属性的值';s值

Ruby on rails 基于另一个属性验证一个属性的值';s值,ruby-on-rails,validation,activerecord,Ruby On Rails,Validation,Activerecord,如果给定属性存在,如何强制另一个属性的存在 我有一个具有国家和州属性的用户模型。我想验证当用户尝试注册时,他没有绕过客户端验证并提交带有params[:country]=“canada”和params[:state]=“new_york”的恶意请求一个示例实现: validates :state, inclusion: { in: [ON, BC, AB], message: "%{state} is not valid" }, if: :country_is_canada? def

如果给定属性存在,如何强制另一个属性的存在


我有一个具有国家和州属性的用户模型。我想验证当用户尝试注册时,他没有绕过客户端验证并提交带有
params[:country]=“canada”
params[:state]=“new_york”

的恶意请求一个示例实现:

validates :state, inclusion: { in: [ON, BC, AB],
    message: "%{state} is not valid" }, if: :country_is_canada?

def country_is_canada?
  country == 'Canada'
end

我不明白你的意思。。请澄清。如果我没有错,您想验证用户是否来自加拿大,他应该不能选择纽约作为他的州,对吗?@sontya选择是客户端,验证已完成,我不希望使用gem@propster-通过选择,我的意思是说将其保存到数据库,我的错误。所以,在某个地方,你可以写下哪些国家应该允许哪些国家是正确的。如果你想验证一个属性的存在,那么看看下面的问题:spot on。我想你有一个拼写错误tho@railsouter在有效的Hanks之后,更正了。这就是当你这么快回答问题时会发生的事情,哈哈