У меня есть родительская модель с одной дочерней моделью с вложенными атрибутами. У меня есть одна форма, которая обновляет как родительский, так и дочерний.Rails 4 - сохраняющий объект с вложенными атрибутами
Вот мои модели: вид
class Parent < ActiveRecord::Base
has_one :child
accepts_nested_attributes_for :child
end
class Child < ActiveRecord::Base
belongs_to :parent
end
Форма:
<%= form_for @parent, do |f| %>
<%= f.text_field :parent_name %>
<%= f.fields_for @parent.child do |c| %>
<%= c.text_field :child_name %>
<% end %>
<%= f.submit "Save" %>
<% end %>
Родитель контроллер:
class ParentsController < ApplicationController
def update
@parent = Parent.find(params[:id])
@parent.update(params.require(:parent).permit(:parent_name, child_attributes: [:child_name]))
redirect_to @parent
end
end
Когда я сохранить форму, родительские обновления, но ребенок Безразлично» т. Что я делаю не так?
Это работает, спасибо! Почему я должен использовать символ, а не объект? – FloorLamp
Немного долго объяснять, но посмотрите здесь http://rubymonk.com/learning/books/4-ruby-primer-ascent/chapters/45-more-classes/lessons/110-instance-variables, а здесь http: //stackoverflow.com/questions/7211724/ruby-difference-between-variable-and-variable. – phron