我正在开发一个有以下设计论坛的项目,其中有帖子有评论。我正在阅读红宝石指南http://guides.rubyonrails.org/layouts_and_rendering.html#overview-how-the-pieces-fit-together,它说要从另一个动作渲染动作模板,我需要使用类似render "posts/index"
之类的东西。
我正在尝试打印该论坛中论坛的所有帖子。我已经设置了数据库和模型,但不知道如何处理控制器。
如何在forums / show / i中调用posts / index(其中i是论坛的id)。
如何在论坛中打印帖子以及如何仅打印与该特定论坛相关的帖子?
当我尝试调用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 'posts/index' %>
以上是红色突出显示。
感谢您的时间。
答案 0 :(得分:1)
由于你有相互关联的模型,我会这样做。在您的论坛中显示视图:
<%= render partial: 'posts/index', locals: {forum: @forum} %>
然后创建部分视图帖子/ _index.html.erb:
<% forum.posts.each do |post| %>
<div><%= post.your_attributes %></div>
<div><%= render partial: 'comments/index', locals: {forum: forum, post: post} %>
<% end %>
最后创建一个部分视图comments / _index.html.erb:
<% post.comments.each do |comment| %>
<div><%= comment.your_attributes %><div>
<% end %>
locals选项将这些变量传递给您的部分可在那里使用。