2012-01-12 21 views
2

Railsガイド(http://guides.rubyonrails.org/getting_started.html)を使って作業していますが、11章の「複数モデルフォームを作成する」で取り残されています。Railsガイド - 複数のモデルにぶら下がったフォーム

運動しのこの部分は、別のフォーム内の一つのモデルのためのフォームフィールドを含めについて説明...

私の問題は、第2のモデルのためのフォームフィールドだけで表示されないということです。..

コードはエクササイズとまったく同じです(サンプルからコードを直接コピーして貼り付けることさえあります)

私のコードは以下の通りです。このコードをガイドのコードと比較するのに何時間も費やしました。それはまったく同じです。誰かが間違っているかもしれないことを私に指摘できますか?

多くの方々のおかげです。ここで

は、ここで部分的

<%= 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| %> 
… 

は、それが動作しない場合は、お使いのPostControllerのnew方法に@post.tags.buildを追加してみてください、それはあなたのフィールドをもたらすかどうかを確認します!

+0

これは..私はこのコードを見て何時間も費やしましたが、それがありました。ありがとうございました!!!!!!! – Jason

+0

あなたは大歓迎です!私はこのfields_forの過去に何時間も過ごしました:) –

+0

それは動作します!ありがとう! – Dan

関連する問題