【发布时间】:2016-05-18 09:06:17
【问题描述】:
我有一个供应商名称和电子邮件的基本表单设置。我想将我的地址属性嵌套到此表单中,但我不断收到以下错误
不允许的参数:地址
class Supplier < ActiveRecord::Base
has_many :addresses, dependent: :destroy, as: :addressable
accepts_nested_attributes_for :addresses
end
class Address < ActiveRecord::Base
belongs_to :addressable, polymorphic: true
belongs_to :supplier
end
class SuppliersController < ApplicationController
def allowed_params
params.require(:supplier).permit(:name, :email, {:address_attributes => [:first_name, :last_name, :address1, :address2, :city, :zip_code, :country_id]})
end
end
供应商表格
%fieldset#admin-supplier-names.span-12
%label Name
= form.text_field :name
%label Email
= form.text_field :email
= form.fields_for :address do |address_fields|
%li= address_fields.text_field :first_name, placeholder: :first_name.upcase, value: current_user.first_name
%li= address_fields.text_field :last_name, placeholder: :last_name, value: current_user.last_name
%li= address_fields.text_field :address1, placeholder: :address_1
%li= address_fields.text_field :address2, placeholder: :address_2
%li= address_fields.text_field :city, placeholder: :city
%li= address_fields.text_field :zip_code, placeholder: :post_code
%li=address_fields.select :country_id, select_countries, :include_blank => true
【问题讨论】:
-
供应商模型中的关联是
has_many :addresses? -
@Pavan 我有
has_many :addresses, dependent: :destroy, as: :addressable -
如果您使用了 'belongs_to :addressable, :polymorphic => true' 那么为什么要使用 'belongs_to :supplier' ,我的意思是为什么要同时使用它们,如果一个可以满足您的目的?
-
你为什么不用茧? github.com/nathanvda/cocoon :)
标签: ruby-on-rails forms nested-forms strong-parameters