1

我的問題是有關accept_nested_attributes,我有一個型號名稱StudentProfile,它包含以下代碼:accept_nested_attributes不破壞記錄

class StudentProfile < ActiveRecord::Base 
    attr_accessible :projects_attributes 
    has_many :projects ,:inverse_of => :student_profile,:dependent => :destroy 
    accepts_nested_attributes_for :projects, :allow_destroy => true, :reject_if => lambda { |a| a[:name].blank? } 
end 

我的另一個模型包含下面的代碼:

class Project < ActiveRecord::Base 
    belongs_to :student_profile 
end 

和我的視圖文件包含以下代碼:

<%= f.fields_for :projects do |builder| %> 
    <%= render "projects_fields", :f => builder %> 
<% end %> 
<%= link_to_add_fields "Add Project", f, :projects %> 

現在的問題是,每當我保存一份學生檔案時,我實際上可以保存項目的記錄,但每當我嘗試更新學生檔案並刪除其中一個項目時,實際上並沒有銷燬更新項目,但我的params包括以下內容:

"projects_attributes"=>{"0"=>{"name"=>"test", "_destroy"=>"1", "id"=>"2"}} 

請說清楚我做錯了什麼。

+0

您可以發佈視圖代碼? – 2013-03-04 10:11:57

+0

我已經發布在我的問題 – 2013-03-04 10:37:10

回答

1

它可能是一個質量屬性的保護,在您StudentProfile,添加以下內容:

class StudentProfile < ActiveRecord::Base 
    attr_accessible :projects_attributes 

    has_many :projects ,:inverse_of => :student_profile,:dependent => :destroy 
    accepts_nested_attributes_for :projects, :allow_destroy => true, :reject_if => lambda { |a| a[:name].blank? } 
end 
+0

在我的模型中添加,但問題仍然存在 – 2013-03-04 10:21:38

+0

我知道它的一個愚蠢的問題,但你重新啓動服務器?你的日誌看起來很好,表單正在發送正確的參數,除非在你的控制器中有一些奇怪的東西,這似乎是一個大規模屬性問題。 – rorra 2013-03-04 10:27:17

+0

是的,我做了這麼多次,但沒有得到成功 – 2013-03-04 10:36:29