2013-09-21 7 views
0

У меня есть две модели- Семья и Person: (Использование 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

Попробуйте добавить persons_attributes в attr_accessible # В family.rb

+0

У меня есть 'accepts_nested_attributes_for: person' то зачем мне это нужно? – mrudult

+0

Да, это сработало как шарм. Как добавить отдельную кнопку 'delete' для каждого человека? См. Вопросы в последней строке. ** Будет ли добавлена ​​простая кнопка удаления для каждого человека? ** – mrudult

+1

B/c 'accepts_nested_attributes_for: person' генерирует дополнительные параметры для вашей вложенной модели. –

Смежные вопросы