2016-09-01 311 views
0

ポストビュー以外の別のビューにコメントフォームを表示しようとしていますが、エラーが表示されます: {:action => "index"、:controller => "コメント"、:post_idの=> nilの}行方不明に必要なキー:[:post_idの]ポストビュー以外のビューへのコメントフォームのレンダリング

マイモデル:

class Comment < ApplicationRecord 
    belongs_to :post 
    belongs_to :user 
end 

class Post < ApplicationRecord 
    belongs_to :user 
    has_many :comments 
    mount_uploader :image, AvatarUploader 
    validates :content, presence: true, length: {minimum: 5} 
    delegate :username, :username=, :email, :email=,:avatar, :avatar=, :to => :user, allow_nil: true 

end 


class Wall < ApplicationRecord 
    has_many :post 
    has_many :users 
    has_many :comments 

    delegate :username, :username=,:avatar, :avatar=, :email, :email=, :to => :user, allow_nil: true 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 
end 

と私はwallcontrollerでレンダリングしています私のフォーム - > index.htmlを。エルブ

<div class="comments"> 
<%= form_for ([@post, @post.comments.build]) do |f| %> 
    <%= f.text_area :content, class: 'comments js-auto-size', id: 'alex2' ,:rows => 1 %> 
    <%= f.submit "Submit", class: "btn btn-default" %> 
    <% end %> 
</div> 

UPDATE:

Rails.application.routes.draw do 
    devise_for :users 
    resources :uploads 
    resources :users 
    resources :walls 
    resources :posts do 
    resources :comments 
    end 
    root 'walls#index' 
end 

ポストビューにこのフォームの追加は次のように基本的ですが、私は

このアプリindex.html.erb壁には、このフォームとコメントの両方をレンダリングしたい、何の問題もなく動作しますfacebookなので、すべてが1ページに表示されます。 doendあなたはせずにフォームをレンダリングすることができますので、あなたは、postオブジェクトを持っている間ので

<% @posts.each do |post| %> 
... 

<% end %> 

...

+0

routes.rbを表示できますか? – SteveTurczyn

+0

投稿にルートを追加しました –

答えて

0

壁指数は、(おそらく)すべての記事を表示あなたは、いくつかの構造などを持っている必要があります代わりにインスタンス変数...

<div class="comments"> 
<%= form_for ([post, post.comments.build]) do |f| %> 
    <%= f.text_area :content, class: 'comments js-auto-size', id: 'alex2' ,:rows => 1 %> 
    <%= f.submit "Submit", class: "btn btn-default" %> 
    <% end %> 
</div> 
+0

すばらしいワウソク、カントはそれがとても小さいと信じていました!私は今5日間これで立ち往生していた! –

関連する問題