-1

ネストされたフォームが機能していないようで、表示されないか理解できません。ここでエラー

Can't mass-assign protected attributes: location

今ここに私が書いた方法

モデル/イベント:

#Data
  attr_accessible :customer_id, :description, :location_attributes
#Relationship
  has_many :locations
  accepts_nested_attributes_for :locations, :allow_destroy => true

モデル/場所:

#Data
  attr_accessible :address, :customer_id, :event_id, :latitude, :longitude
#Relationship
  belongs_to :customer
  belongs_to :event

コントローラ:

  def create
    @event = current_customer.events.build(params[:event])
    ...

意見:

  <%= f.fields_for :location do |e| %>
    <%= e.hidden_field :longitude %>
    <%= e.hidden_field :latitude %>
  <% end %>

パラメータ

 "location"=>{"longitude"=>"-80.9449995",
 "latitude"=>"46.435371599999996"},

私は Rails 3.2.9 を使用しており、vps サーバーでホストされています。なぜ機能しないのかわかりません。

4

1 に答える 1

1

フォームは次のようになります。複数形に注意してください。

<% f.fields_for :locations do |location_form| %>

これは、フォーム オブジェクトに関連付けられている場所オブジェクトのフィールドをレンダリングしているためです。これにより、これらのフィールドのパラメーターが という名前location_attributesになり、コントローラーにそのまま渡され、モデルがそれらを受け入れるようになります。

于 2013-01-04T03:49:09.400 に答える