1

私は、次のデザインフォーラムにコメントがある投稿を持つporjectに取り組んでいます。私はrubyガイダンスhttp://guides.rubyonrails.org/layouts_and_rendering.html#overview-how-the-pieces-fit-togetherを読んでおり、これはrender "posts/index"のようなものを使用する必要がある別のアクションからアクションテンプレートをレンダリングすると言います。別のコントローラからアクションのテンプレートをレンダリングする

私はこのフォーラムでフォーラムのすべての投稿を印刷しようとしています。私はデータベースとモデルを設定しましたが、コントローラをどう扱うべきか分かりません。

forums/show/i(私はフォーラムのIDです)でposts/indexを呼び出すにはどうすればよいですか?

フォーラムで投稿を印刷するにはどうしたらいいですか?特定のフォーラムに関連する投稿のみを印刷するにはどうすればよいですか?

私はフォーラムのコントローラのインデックス機能に「/インデックス投稿を」レンダリング呼び出ししようとしたとき、私はこのエラーメッセージを取得:

ActionView::MissingTemplate in Forums#show 


Showing /home/ubuntu/workspace/app/views/forums/show.html.erb where line #26 raised: 

Missing partial posts/_index with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in: 
    * "/home/ubuntu/workspace/app/views" 
    * "/usr/local/rvm/gems/ruby-2.3.4/gems/devise-4.3.0/app/views" 

<%= render 'posts/index' %>

を上記の強調表示されています赤。

お時間をいただきありがとうございます。

+0

モデルはお互いに関連していますか?そうでない場合、なぜあなたはしないのですか? –

+0

@ジュリアンG。ポストモデルに 'has_and_belongs_to_many:x'を使用し、フォーラムモデルでも同じモデルを関連付けました(xは反対のテーブル名です) –

答えて

1

お互いが関連しているので、私はこのようにします。あなたのフォーラムのショービューで:

<% post.comments.each do |comment| %> 
    <div><%= comment.your_attributes %><div> 
<% end %> 

<% forum.posts.each do |post| %> 
    <div><%= post.your_attributes %></div> 
    <div><%= render partial: 'comments/index', locals: {forum: forum, post: post} %> 
<% end %> 

が最終的に部分ビューのコメント/ _index.html.erbを作成します。

<%= render partial: 'posts/index', locals: {forum: @forum} %> 

は、部分ビューの記事/ _index.html.erbを作成します

localsオプションは、それらの変数をパーシャルに渡してそこで使用できるようにします。

関連する問題