Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么Rails不记录在子级上使用accepts\u nested\u attributes\u的能力_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 为什么Rails不记录在子级上使用accepts\u nested\u attributes\u的能力

Ruby on rails 为什么Rails不记录在子级上使用accepts\u nested\u attributes\u的能力,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,来自rails文档:“嵌套属性允许您通过父级保存相关记录上的属性。” 我可以通过子项保存相关记录上的属性。(这很好……但为什么没有记录或解释?) (此项目可从github克隆,网址为:) 车型(母车型) class车辆

来自rails文档:“嵌套属性允许您通过父级保存相关记录上的属性。”

我可以通过子项保存相关记录上的属性。(这很好……但为什么没有记录或解释?)

(此项目可从github克隆,网址为:)

车型(母车型)

class车辆
车型(儿童)

class-Car
汽车控制器

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

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

end
class CarsController
汽车“新”视图

<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 %>
汽车#全新
:






它意味着所有的关联:
有许多
有一个
属于
habtm
。所以所有内容看起来都有很好的文档记录。

但是rails文档说:“嵌套属性允许您通过父级在相关记录上保存属性”-是的,但这不是一个bug。如果您深入查看此方法的源代码,很容易看到
接受
的_嵌套的_属性_适用于各种关联:
If reflection=reflect_on_association(association_name);else:引发ArgumentError,“找不到名称
{association\u name}的关联。是否已定义该关联?”;结束`
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 %>
Defines an attributes writer for the specified association(s).