2011-02-18 92 views
14

我有一個多層嵌套的表格嵌套形式引發「無法大規模指派保護屬性警告

 
User->Tasks->Prerequisites 

,並以相同的形式

 
User->Tasks->Location 

位置形態正常工作,現在我正試圖爲當前任務指定先決條件。先決條件是存儲在:completed_task字段中的task_id。

當我提交表單,我得到以下錯誤在輸出爲用戶的每個任務

 
WARNING: Can't mass-assign protected attributes: prerequisite_attributes 

一個警告。

我已經通過所有與此相關的其他問題了,確保字段名稱:completed_task被正確引用,

加入attr_accessible到我的模型(它已經在那裏了,我伸出它)。

我不知道還有什麼我應該做的。

我的模型看起來像

 
class Task < ActiveRecord::Base 
    attr_accessible :user_id, :date, :description, :location_id 

    belongs_to :user 
    has_one :location 
    accepts_nested_attributes_for :location 
    has_many :prerequisites 
    accepts_nested_attributes_for :prerequisites 
end 

class Prerequisite < ActiveRecord::Base 
    attr_accessible :completed_task 

    belongs_to :task 
end 

形式使用formtastic,我包括通過

 
<%= f.semantic_fields_for :prerequisites do |builder3| %> 
    <%= render 'prerequisite_fields', :f=>builder3 %> 
<% end %> 

--- _prerequisite_fields.html.erb ----- 
< div class="nested-fields" > 
    <%= f. inputs:completed_step %> 
</div> 

任何建議的形式?

+0

+1問這個問題,我正在尋找同樣的事情! – weltschmerz 2013-01-05 21:25:37

回答

26

地址:prerequisite_attributes,以便attr_accessible大規模指派

attr_accessible :user_id, :date, :description, :location_id, :prerequisite_attributes

應該讓你開始。

+1

是的,它做到了。這是推薦的方式嗎?我似乎並不需要我的其他嵌套形式。以前,我將prerequisites_attributes添加到先決條件模型中,我認爲這是我的錯誤 – pedalpete 2011-02-18 04:59:15

相關問題