0

次のエラーが表示されます。

"ActiveModel::MassAssignmentSecurity::DaysController#create のエラー

保護された属性を一括割り当てできません: _destroy"

_destroy が属性であることさえ知りませんでした。

私が行っていること:

私のモデルは、多くの「日」を持つ「旅行」があるということです

私の Trips モデルの "Show" ビューで、新しい "Day" を追加するために Form のパーシャルをレンダリングしています:

<div id="day_form">
  <%= render :partial => "day_form", :day => @day %>
</div> 

私のモデル:

class Trip < ActiveRecord::Base
  attr_accessible :title, :days_attributes
  has_many :days
  accepts_nested_attributes_for :days, allow_destroy: true

end


 class Day < ActiveRecord::Base
  attr_accessible :activity_id, :order, :summary, :trip_id, :activities_attributes
  belongs_to :trip
  has_many :activities, :order => 'position'
  accepts_nested_attributes_for :activities, allow_destroy: true 
end

フォームを送信すると、この Mass Assignment エラーが発生します。なんで?

編集

「日」フォームは次のようになります。

    <%= form_for(@day) do |f| %>

      <ul>
      <% @day.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

        <fieldset>
          <%= f.label :summary, "Day Summary" %><br />
          <%= f.text_area :summary, :rows => 1 %><br />
          <%= f.hidden_field :_destroy %>
              <%= link_to "remove", '#', class: "remove_fields" %>
        </fieldset>
        <div class="actions">
    <%= f.submit %>
        </div>
<% end %>
4

1 に答える 1

0
 module ApplicationHelper
  def link_to_remove_fields(name, f)
    text_field_tag(:_destroy) + link_to_function(name, "remove_fields(this)")
  end

交換f.hidden_field

于 2013-06-03T15:26:55.173 に答える