我正在使用 form_for 和 fields_for 创建公司、地址和 company_person。
这是公司模型的相关部分:
class Company < ActiveRecord::Base
has_many :company_people
accepts_nested_attributes_for :company_people
has_many :addresses, as: :location
accepts_nested_attributes_for :addresses
我已将相关参数添加到 Companies 控制器:
def company_params
params.require(:company).permit(:name, :email, :phone,
:website, :ein, :description,
{company_person_params: [:first_name, :last_name, :phone, :email]},
addresses_attributes: [:id, :street, :city, :zipcode])
end
这是公司控制器中执行工作的部分:
@company = Company.new
@company.assign_attributes(company_params)
@company.agencies << Agency.first
@company.company_people.build
@company.company_people << @company_person
if @company.save
flash.notice = "Success!"
这对地址工作正常 - 它由“@company.assign_attributes(company_params)”处理。它已保存,我可以在确认页面上打印没问题。但是 company_person 没有发生。我对所有事情都没有例外。我正在关注本指南: http: //guides.rubyonrails.org/form_helpers.html#nested-forms但我仍然卡住了。
我究竟做错了什么?