2016-11-09 5 views
0

У меня есть один-ко-многим ассоциации в моем коде, например:Проверка на formtastic вложенных полей

class Second < ActiveRecord::Base 
    has_many :firsts 
end 
class First < ActiveRecord::Base 
    belongs_to :second 
    accepts_nested_attributes_for :second 
end 

В моей Еврорадио для первых, у меня есть:

<%= f.input :one_field, :label => false %> 
<%= f.semantic_fields_for :second do |cp_f| %> 
    <%= cp_f.input :another_field, :as => :string, :label => "another field" %> 
<%= end %> 

Форма правильно заполняет данные во вложенной таблице.

Мне нужно поместить некоторые проверки в контроллер, и я хотел бы указать пользователю в поле, где произошла ошибка. Если я пишу об ошибке вроде этого:

errors.add :one_field, "This is wrong" 

Это не работает без проблем и ставит ошибку на правой странице поля. Но я хотел бы сделать то же самое для вложенной области, как, может быть:

errors.add :second.another_field, "Another wrong one" 

Но я получаю сообщение об ошибке:

undefined method `another_field' for :second:Symbol 

Есть ли способ поставить ошибку на вложенном поле ?

ответ

0

Проблема заключалась в доступе к элементу ошибок First. Что мне было нужно:

second.errors.add :another_field, "Another wrong one"