Как я могу направить к новому действию для глубоко вложенной записи? - PullRequest
0 голосов
/ 25 июля 2011

У меня есть таблица мест, отзывов и комментариев, где у места много отзывов, и у каждого отзыва много комментариев.

В настоящее время рецензии показываются как частичные на местах show.html.erb со ссылкой «Добавить комментарий» внизу каждого частичного.

Как мне получить эту ссылку для перехода к новому действию комментария?

Вот мой код:

1010 * маршруты *

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 в Venues # show undefined метод `new_review_comments_path 'для # <#: 0x5878e18> error.

Спасибо за любую помощь, она очень ценится!

1 Ответ

2 голосов
/ 25 июля 2011

Ссылка для добавления нового комментария должна быть:

<%= link_to 'add comment', new_review_comment_path(review) %>
...