我试图将我的评论发布到特定帖子,但我收到了一条缺失的模板评论/评论。我查了一些可能的原因,我认为这与我的评论呈现有关,但我不知道如何修复它。
在我的CommentsController中,我有渲染
class CommentsController < ApplicationController
def create
@topic = Topic.find(params[:topic_id])
@post = Post.find(params[:post_id])
@comment = current_user.comments.build(comment_params)
render 'comment'
end
在视图/评论中也有
<% @comments.each |do| comment %>
<div class="media">
<div class"media-body"
<h4 class="media-heading">
<ul>
<li><% render comment %></li>
</h4>
</div>
</div>
<% end %>
我还在视图/ posts / show中包含它我想要评论为每个正在发布的帖子创建一个列表。
<h1><%= markdown @post.title %></h1>
<div class="row"> <!-- what others are there besides row? -->
<div class="col-md-8">
<p><%= markdown @post.body %></p>
</div>
<div class="col-md-4">
<% if policy(@post).edit? %>
<%= link_to "Edit", edit_topic_post_path(@topic, @post), class: 'btn btn-success' %>
<% end %>
</div>
<div class="col-md-8">
<%= render partial: 'comments/form', locals: { topic: @topic, post: @post, comment: @post.comments.new } %>
<%= render partial: 'comments/comment', locals: {comment: @comment} %>
</div>
</div>
我是否错误地命名了渲染?
答案 0 :(得分:0)
在您的问题的第一部分中,render "comment"
语句实际上查找与comment
操作关联的视图文件(事实证明,您未在控制器中定义)。
app/views/comments/comment.html
将控制器中的代码更改为以下
def创建 #你的逻辑在这里 渲染&#34;评论/评论&#34; #cocks知道您正在寻找一个文件,而不是使用反斜杠查找与某个操作相关联的视图 端
关于你问题的第二部分(我可能会误解你的问题),你问为什么以下这些不起作用?
<%= render partial: 'comments/form' %>
这是因为在render :partial => "controller/partial"
中,rails会查找文件app/views/controller/_partial.html.erb
而不是键入的内容。
在您的情况下,可能适合的是创建部分comments/_comments.html.erb
并从您的帖子中展示部分内容#show action and comments #create action。