2016-02-28 2 views
1

Кнопка next comment должна быть направлена ​​в http://localhost:3000/articles/14/comments/70.Ruby on Rails: контроллер не метод оценки

Что в настоящее время выполняет это: http://localhost:3000/articles/14/comments/56/next_comment

Как один исправить это?

#button 
= link_to "next comment", next_comment_article_comment_path(@article, @comment) 

#controller 
class CommentsController < ApplicationController 

    def next_comment 
    @comment ||= @scope.next(@comment) 
    end 

    def scope 
    @scope ||= @article.comments 
    end 
end 

UPDATE

#routes.rb 
resources :articles do 
resources :comments do 
    member do 
    get 'next_comment' 
    end 
end 
end 
+0

Вы можете обновить свой вопрос с 'routes.rb' кодом ? – Pavan

+0

Сделано! Спасибо ... – Liroy

+0

любая подсказка, что здесь происходит? – Liroy

ответ

0

rake routes Run и проверьте, есть ли маршрут next_comment_article_comment_path(@article, @comment)

И попробуйте ти: article_comment_next_comment_path(@article, @comment)

+0

Сам маршрут работает и, конечно, появляется под «рейк-маршрутами», проблема в том, что этот метод не выполняется. – Liroy

+0

mmm ... Я не понимаю, где вы вызываете метод scope, вы получаете доступ к '@ scope', который должен быть в то время нулевым. Почему вы этого не делаете? 'def next_comment; @comment || = scope.next (params [: comment]); end' 'def scope; @scope || = params [: article] .comments; end' –

+0

Имеет смысл, но я не думаю, что именно поэтому метод не выполняется. – Liroy

Смежные вопросы