我如何使用改革 干验证验证嵌套属性



验证是触发的,并且根据我传递的记录属性(即 required(:title).filled)的预期工作,而不是嵌套模型的属性(即required(:name).filled中的CC_2)。

class AlbumForm < Reform::Form
  property :title
  validation do
   required(:title).filled
  end
  property :artist do
    property :name
    validation do
     required(:name).filled
    end
  end
end

(摘要摘自http://trailblazer.to/gems/reform)

我希望Albumform.new(album).valid?如果album.artist.name == nil返回false,但事实并非如此。我在这里想念什么?如何实现?

使用:

  • Rails 4.2.7.1
  • 改革轨道0.1.7
  • 改革2.2.2
  • 干验证0.10.3

长话短说,您应该使用validate(params[:album])而不是valid?http://trailblazer.to/gems/reform/#validation

def create 
  # params album: { name: nil, other_stuff: 'stuff' }
  form = AlbumForm.new(Album.new)
  if form.validate(params[:album])
    form.save
  end
end

最新更新