nested_form rails上缺少块错误3

时间:2011-09-07 03:56:06

标签: ruby-on-rails nested-forms nested-attributes

我有一些像

这样的模特
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 个答案:

答案 0 :(得分:1)

确保在模型中添加适当的accepts\_nested\_attributes\_for行。这就是为我解决这个问题的原因。

答案 1 :(得分:0)

错误消息显示您缺少fields_for方法的块。 代码应该看起来像这样:

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

如果查看documentation examples for fields for,您会看到该块。 您还会在nested_form readme

中看到该块语法