我有一些像
这样的模特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:)
答案 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。
中看到该块语法