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