2013-09-21 48 views
0

我有兩個模型 - 家庭:(採用Mongoid和Rails 3.2.13)Rails的更新通過嵌套模型的形式記錄和刪除鏈接

family.rb

attr_accessible :location 
has_many :persons 
accepts_nested_attributes_for :persons 

person.rb

attr_accessible :name 
belongs_to :family 

FamiliesController我:

def edit 
    @family=Family.find(params[:id]) 
    end 

    def update 
    @family=Family.find(params[:id]) 
    @family.update_attributes(params[:family]) 
    end 
edit.html.erb家庭控制器

<div class="container"> 
<%= simple_form_for @family do |f| %> 
    <%= f.error_messages %> 
    <%= f.input :location %> 
    <%= f.simple_fields_for :persons do |p| %> 
     <%= p.input :name %> 
    <%end%> 
    <%= f.submit "Submit" %> 
<% end %> 
</div> 

只更新家庭屬性和人員attrubutes保持不變。

我該如何更新Person的屬性?

另外我想爲每個人添加一個delete按鈕,其中的將刪除相應的人。如何實現這一目標?

+0

你在控制器使用params.permit地方? – tihom

+0

沒有。那是什麼? – mrudult

+0

它用於過濾哪些參數是允許的,但如果你不使用它,那就不是原因。 – tihom

回答

1

嘗試在attr_accessible#添加persons_attributesfamily.rb

+0

我有'accept_nested_attributes_for:persons'那麼爲什麼我需要這個? – mrudult

+0

是的,就像魅力一樣工作。如何爲每個人添加一個單獨的「刪除」按鈕?看問題的最後一行。 **爲每個人添加一個簡單的刪除按鈕來完成這項工作** ** – mrudult

+1

B/c'accep_nested_attributes_for:persons'只爲您的嵌套模型生成額外的參數。 –