Как проверить вложенные атрибуты с помощью реформ + сухой проверки?
Проверки запускаются и работают должным образом для атрибутов записи, которую я передаю (т.е. required(:title).filled
), но не для атрибутов вложенных моделей (т.е. required(:name).filled
в artist
).
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
но это не так. Что мне здесь не хватает? Как этого достичь?
С помощью:
- рельсы 4.2.7.1
- реформаторские рельсы 0.1.7
- реформа 2.2.2
- сухая проверка 0.10.3
1 ответ
Короче говоря, вы должны использовать validate(params[:album])
вместо valid?
http://trailblazer.to/gems/reform/
def create
# params album: { name: nil, other_stuff: 'stuff' }
form = AlbumForm.new(Album.new)
if form.validate(params[:album])
form.save
end
end