2012-01-12 42 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