2012-01-12 45 views
2

我正在通过Rails指南(http://guides.rubyonrails.org/getting_started.html),并且卡在项目11“构建多模型表单”中。Rails指南 - 卡在多模型表格

的锻炼; Tibial的这部分解释了有关包括其他形式的内部一个模型表单字段...

我的问题是,对于第二个模型表单字段就是不显示..

该代码是完全按照excercise(我甚至有绝望,直接从样本复制和粘贴的代码)

我的代码张贴在下面..我花了几个小时比较这与代码在指南,并它是完全一样的..任何人都可以指出我可能会出错的地方吗?

很多预先感谢。

这里是我的,包括部分

<%= render :partial => 'tags/form', 
      :locals => {:form => post_form} %> 

下面的代码的内容我部分

<p>Above - THIS IS DISPLAYING</p> 

<%= form.fields_for :tags do |tag_form| %> 

    <p>Inside - THIS IS NOT DISPLAYING</p> 

    <div class="field"> 
    <%= tag_form.label :name, 'Tag:' %> 
    <%= tag_form.text_field :name %> 
    </div> 
    <% unless tag_form.object.nil? || tag_form.object.new_record? %> 
    <div class="field"> 
     <%= tag_form.label :_destroy, 'Remove:' %> 
     <%= tag_form.check_box :_destroy %> 
    </div> 
    <% end %> 
<% end %> 

这里是我的帖子,被设置为接受的标签

嵌套的属性模型
class Post < ActiveRecord::Base 
    validates :name, :presence => true 
    validates :title, :presence => true, 
        :length => { :minimum => 5 } 

    has_many :comments, :dependent => :destroy 
    has_many :tags 

    accepts_nested_attributes_for :tags, :allow_destroy => :true, 
    :reject_if => proc { |attrs| attrs.all? { |k, v| v.blank? } } 

end 

回答

7

你这样做了吗?

我们还在此表格的顶部添加了一个@ post.tags.build。这是 请确保有一个新标签准备好由 用户填写名称。如果您不构建新标签,则表单不会出现 ,因为没有新的标签对象可供创建。

<% @post.tags.build %> 
<%= form_for(@post) do |post_form| %> 
… 

如果还是不行,请尝试添加@post.tags.build到您的PostController中的new方法,看看是否能为您带来的领域!

+0

就是这样..我花了几个小时仔细查看这段代码,它就在那里。谢谢!!!!!!! – Jason 2012-01-12 11:49:37

+0

不客气!我已经花了几个小时在这个fields_for,也是:) – 2012-01-12 12:01:56

+0

它的工作原理!谢谢! – Dan 2013-04-11 07:13:18