Ошибка отсутствующего блока на рельсах nested_form 3 - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть некоторые модели, такие как

class CompanyDepartment < ActiveRecord::Base    
  belongs_to :company

  accepts_nested_attributes_for :phones, :allow_destroy => true
  attr_accessible :phones_attributes
end

class Phone < ActiveRecord::Base  
  has_and_belongs_to_many :companies
  has_and_belongs_to_many :company_departments 
end

Я использую nested_form ryanb gem. Все работает хорошо, когда я создаю новый company_department. Все телефонные добавления частичные тоже хорошо работает.

Но когда я редактирую какой-то company_department, у меня появляется ошибка на телефоны добавление.

Это мой телефон просмотров:

#views/company_departments/_tab_contacts.html.haml
%td
      #phones
        = f.fields_for :phones
        = f.link_to_add "add phone", :phones


#views/company_departments/_phone_fields.html.haml
= f.text_field :number
= f.link_to_remove "delete"

Ошибка звучит как

 Missing block

 Extracted source (around line #7):

     #views/company_departments/_tab_contacts.html.haml 
     ...
     7:         = f.fields_for :phones
     ...

Так что я рендеринг этой вкладки через AJAX. Когда я рендеринга без AJAX ошибка не показывает, и все работает хорошо. Но мне нужно работать с ajax:)

Ответы [ 2 ]

1 голос
/ 04 декабря 2012

Обязательно добавьте строку в вашей модели с соответствующим accepts\_nested\_attributes\_for.Вот что исправило это для меня.

0 голосов
/ 07 сентября 2011

В сообщении об ошибке говорится, что вам не хватает блока для метода fields_for. Код должен выглядеть примерно так:

#phones
  = f.fields_for :phones do |p|
    = p.link_to_add "add phone", :phones

Если вы посмотрите на примеры документации для полей для , вы увидите этот блок. Вы также увидите синтаксис этого блока в файле readme nested_form .

...