2012-06-27 54 views
1

我已经有这个问题几天,并查看了每个教程和堆栈溢出。我似乎无法解决。我似乎无法使用工作的嵌套属性。这个表单视图出现错误。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 
+2

你会得到什么错误? – Alex

+0

我不建议有一个名为'end'的列,这可能会导致ruby解析器出现各种麻烦。尝试'结束'或'结束_'。 – Unixmonkey

+0

感谢您收到提示。在视图中使用它时会出现分析错误:<%f.fields_for:driver do | d | - %> 它引用旅行表格中的驾驶员模型。 – user1485652

回答

0

正如你说你需要关闭结束标记。 如果您有“Can not mass-assing procteted attributes:drivers”错误,则必须在trip模型的drivers_attributes上声明“attr_accessible”。