Ruby on rails 呈现动作';从另一个控制器删除模板

Ruby on rails 呈现动作';从另一个控制器删除模板,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,Ruby On Rails 3.2,我在一个项目上工作,它有以下的设计论坛,有评论的帖子。我正在阅读ruby指南,它说要从另一个操作中呈现一个操作模板,我需要使用类似这样的呈现“posts/index” 我正在尝试打印该论坛中某个论坛的所有帖子。我已经设置了数据库和模型,但不确定如何处理控制器 如何在论坛/show/I中调用帖子/索引(其中I是论坛id) 如何打印论坛中的帖子,以及如何仅打印与特定论坛相关的帖子 当我尝试在论坛控制器的index函数中调用render“posts/index”时,我收到以下错误消息: ActionV

我在一个项目上工作,它有以下的设计论坛,有评论的帖子。我正在阅读ruby指南,它说要从另一个操作中呈现一个操作模板,我需要使用类似这样的
呈现“posts/index”

我正在尝试打印该论坛中某个论坛的所有帖子。我已经设置了数据库和模型,但不确定如何处理控制器

如何在论坛/show/I中调用帖子/索引(其中I是论坛id)

如何打印论坛中的帖子,以及如何仅打印与特定论坛相关的帖子

当我尝试在论坛控制器的index函数中调用render“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 partial: 'posts/index', locals: {forum: @forum} %>

然后创建部分视图posts/_index.html.erb:

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

最后创建部分视图comments/_index.html.erb:

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


“局部变量”选项将这些变量传递给局部变量,以便在那里使用

你们有相互关联的模型吗?“如果没有,你为什么不这么做?”朱丽安。我使用
has_和_belient_to_many:x
获得了与post模型关联的模型,对于论坛模型也是如此(其中x是相反的表名)