Почему Rails не документирует возможность использовать accepts_nested_attributes_for для детей - PullRequest
1 голос
/ 23 февраля 2011

Из документации rails: «Вложенные атрибуты позволяют вам сохранять атрибуты в связанных записях через parent

Я могу сохранить атрибуты в связанных записях через CHILD . (Что здорово ... но ПОЧЕМУ это не задокументировано и не объяснено?)

(Этот проект можно клонировать с github по адресу: https://github.com/blasto333/Vehicles-Demo/)

Модель автомобиля (родительская)

class Vehicle < ActiveRecord::Base
  has_one :car
  attr_accessible :name, :color, :price, :condition
end

# == Schema Information
#
# Table name: vehicles
#
#  id         :integer         not null, primary key
#  name       :string(255)
#  color      :string(255)
#  price      :string(255)
#  condition  :string(255)
#  created_at :datetime
#  updated_at :datetime
#

Модель автомобиля (Детский)

class Car < ActiveRecord::Base
  belongs_to :vehicle
  accepts_nested_attributes_for :vehicle
  attr_accessible :doors, :sport, :vehicle_attributes
end


# == Schema Information
#
# Table name: cars
#
#  id         :integer         not null, primary key
#  vehicle_id :integer
#  doors      :integer
#  sport      :boolean
#  created_at :datetime
#  updated_at :datetime
#

Контроллер машины

class CarsController < ApplicationController
  def new
    @car = Car.new
    @car.build_vehicle
  end

  def create
    Car.create(params[:car])
  end

end

Автомобили "новый" вид

<h1>Cars#new</h1>
<%= form_for @car do |car_form| %>
    <%= car_form.fields_for :vehicle do |vehicle_fields| %>
        <%=vehicle_fields.label :name%>: <%=vehicle_fields.text_field :name%><br />
        <%=vehicle_fields.label :color%>: <%=vehicle_fields.text_field :color%><br />
        <%=vehicle_fields.label :price%>: <%=vehicle_fields.text_field :price%><br />
        <%=vehicle_fields.label :condition%>: <%=vehicle_fields.text_field :condition%><br />
    <% end %>
    <%=car_form.label :doors%>: <%=car_form.text_field :doors%><br />
    <%=car_form.label :sport%>: <%=car_form.text_field :sport%><br />
    <%=car_form.submit%>
<% end %>

1 Ответ

2 голосов
/ 23 февраля 2011

http://apidock.com/rails/ActiveRecord/NestedAttributes/ClassMethods/accepts_nested_attributes_for

Defines an attributes writer for the specified association(s). 

Это означает все ассоциации: has_many, has_one, belongs_to, habtm. Итак ... все выглядит довольно задокументировано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...