2012-08-05 62 views
2

我正在使用茧宝石动态嵌套的形式。我有两个型号没有错误,没有输出的轨道茧宝石

class CrossTable < ActiveRecord::Base 
    attr_accessible :title, :table_name, :database, :folder_label_id, :foreign_fields_attributes 

    belongs_to :folder_label 
    has_many :foreign_fields 

    accepts_nested_attributes_for :foreign_fields 

    validates :title, :table_name, :database, :folder_label_id, presence: true 

end 


class ForeignField < ActiveRecord::Base 
    attr_accessible :cross_table_id, :column_name, :description 

    belongs_to :cross_table 
    has_many :filter_sets 


end 

我已经茧和jQuery的轨道中的Gemfile 我添加// =需要茧到的application.js文件

这里是我的形式部分

<%= simple_form_for @table do |f| %> 
    <%= f.input :title %> 

    <%= f.input :folder_label_id, :collection => @folders, :label_method => :title, :value_method => :id %> 
    <br><br> 
    <%= f.input :table_name %> 
    <%= f.input :database %> 

    <%= f.simple_fields_for :foreign_fields do |fields| %> 
     <%= render 'foreign_field_fields', :f => fields %> 
     <div id='links'> 
      <%= link_to_add_association 'Add Field', f, :foreign_fields %> 
     </div> 
     <% end %> 

    <%= f.button :submit %> 

<% end %> 

@table是交叉表模型的一个实例。 foreign_field_fields部分中的任何内容都不显示,link_to_add_association也不会执行任何操作,而且我也没有任何错误。我怎样才能开始调试呢?有没有人发现错误?

回答

5

您在simple_fields_for内写入了link_to_add_association,它将遍历所有:foreign_fields并执行给定的块。所以如果还没有外地,link_to_add_association从不显示。

如下你应该写你的观点(如记录):

<%= simple_form_for @table do |f| %> 
    <%= f.input :title %> 

    <%= f.input :folder_label_id, :collection => @folders, :label_method => :title, :value_method => :id %> 
    <br><br> 
    <%= f.input :table_name %> 
    <%= f.input :database %> 

    <%= f.simple_fields_for :foreign_fields do |fields| %> 
     <%= render 'foreign_field_fields', :f => fields %> 
    <% end %> 
    <div id='links'> 
     <%= link_to_add_association 'Add Field', f, :foreign_fields %> 
    </div> 

    <%= f.button :submit %> 

<% end %> 

希望这有助于。