我有一个场地,评论和评论的表格,其中一个场地有很多评论,每个评论都有很多评论。
目前,评论显示为场馆show.html.erb的部分内容,并在每个部分的底部添加了“添加评论”链接。
如何获取该链接以转到新的评论操作?
到目前为止我的代码:
路由
Go::Application.routes.draw do
resources :venues do
resources :reviews
end
resources :reviews do
resources :comments
end
end
评论控制器
class CommentsController < ApplicationController
def new
@review = Review.find(params[:review_id])
@comment = @review.comments.build
end
def create
@review = Review.find(params[:review_id])
@comment = current_user.comments.create!(params[:comment])
@comment.review = @review
if @comment.save
flash[:notice] = 'Comment added'
redirect_to comments_path
else
render :action => :new
end
end
end
_review.html.erb
<div class="review">
<div class="review_content">
<h2 class="review_partial_title"><%= review.title %></h2>
<p class="review_body"><%= review.body %></p>
</div>
<div class="clearall"></div>
<div class="review_options">
<div class="review_partial_option">
<%= link_to 'add comment', review_comments_path(review) %>
</div>
</div>
</div>
<%= link_to 'add comment', review_comments_path(review) %>
将我带到评论索引页面(/ review / 168 / comments),并仅显示为该特定评论撰写的评论。
我想用
<%= link_to 'add comment', new_review_comments_path(review) %>
会起作用,但它会在场地中给我一个NoMethodError#show#undeited method`new_review_comments_path'for#&lt;#:0x5878e18&gt;错误。
感谢任何帮助,非常感谢!
答案 0 :(得分:2)
添加新评论的链接应为:
<%= link_to 'add comment', new_review_comment_path(review) %>