Rails 3嵌套属性
问题描述:
我已经有这个问题几天,并查看了每个教程和堆栈溢出。我似乎无法解决。我似乎无法使用工作的嵌套属性。这个表单视图出现错误。Rails 3嵌套属性
**Form View**
<%= form_for @trip, :html => { :class => 'form-horizontal' } do |f| %>
<div class="control-group">
<%= f.label :start, :class => 'control-label' %>
<div class="controls">
<%= f.text_field :start, :class => 'text_field' %>
</div>
<div class="control-group">
<%= f.label :end, :class => 'control-label' %>
<div class="controls">
<%= f.text_field :end, :class => 'text_field' %>
</div>
<div class="control-group">
<% f.fields_for :driver do |d| -%>
<%= d.label :driver, :class => 'control-label' %>
<div class="controls">
<%= d.text_field :driver, :class => 'text_field' %>
</div>
型号:
class Trip < ActiveRecord::Base
attr_accessible :end, :start
belongs_to :driver
belongs_to :customer
accepts_nested_attributes_for :driver
end
class Driver < ActiveRecord::Base
attr_accessible :name
has_many :trips
end
答
正如你说你需要关闭结束标记。 如果您有“Can not mass-assing procteted attributes:drivers”错误,则必须在trip模型的drivers_attributes上声明“attr_accessible”。
你会得到什么错误? – Alex
我不建议有一个名为'end'的列,这可能会导致ruby解析器出现各种麻烦。尝试'结束'或'结束_'。 – Unixmonkey
感谢您收到提示。在视图中使用它时会出现分析错误: 它引用旅行表格中的驾驶员模型。 – user1485652