如何验证相关属性? rails4

时间:2015-06-15 20:02:59

标签: ruby-on-rails validation

我正在使用rails4。我有一个模型,让我们说人类。人类有嵌套模型Man。人有属性名称,地址,数字。我正在尝试制作一个api,我无法验证相关属性。我能够通过使用validates_associated来验证该人,但我的模型正在保存而不验证属性名称地址和数字。如果我从父控制器保存它,我该如何验证它们的存在或mumericalitty?在人类控制器中,我正在拯救这样的人

if @human.save
  @man = @human.man.build
  @man.name = params[:man][:name]
  @man.address = params[:man][:address]
  @man.number = params[:man][:number]
  @man.save

如何在保存之前验证这些属性?请帮忙

2 个答案:

答案 0 :(得分:1)

通常,验证都放在每个相应的模型中。

如果人类accepts_nested_attributes_for人,在人类中验证这些属性的存在应该会阻止你在建立和保存过程中拯救人和人

答案 1 :(得分:0)

使用valid?方法。它将触发模型中定义的验证并返回truefalse

if @man.valid?
  @man.save
else
 #do smth else

进一步阅读:http://guides.rubyonrails.org/active_record_validations.html#valid-questionmark-and-invalid-questionmark