Я пытаюсь создать кнопку на странице show
, которая позволит пользователям перемещаться между различными комментариями.Ruby on Rails: Навигация между комментариями
И по какой-то причине я продолжаю получать либо article :id
, либо comment :id
не удалось найти.
Любая идея, почему это происходит?
#comment.rb
def self.next(comment, key = :id)
self.where("#{key} > ?", comment.send(key)).first
end
#comments_controller.rb
class CommentsController < ApplicationController
before_action :find_article
before_action :find_comment
def next_comment
@next_comment = @scope.next(@comment)
end
def scope
@scope = @article.comments
end
end
#comments/show.html.haml
= link_to "Next Comment", comments_next_comment_path(@next_comment)
EDIT: Проблема была в моих маршрутах, которые теперь исправлены. Но теперь я получаю следующее сообщение об ошибке:
undefined method "next" for nil:NilClass
EDIT 2:
Вот журнал - и URL идет в http://localhost:3000/articles/14/comments/56/next_comment
Теперь не вызывает каких-либо ошибок, а просто отображает пустой страницы вместо того, чтобы идти к следующему комментарию URL, который http://localhost:3000/articles/14/comments/70
Parameters: {"article_id"=>"14", "id"=>"56"}
Article Load (0.2ms) SELECT "articles".* FROM "articles" WHERE "articles"."id" = ? LIMIT 1 [["id", 14]]
Comment Load (0.1ms) SELECT "comments".* FROM "comments" WHERE "comments"."id" = ? LIMIT 1 [["id", 56]]
Rendered comments/next_comments.html.haml within layouts/application (0.2ms)
Можете ли вы предоставить более подробную информацию о том, где возникает ошибка? Является ли это одним из методов 'before_action' или где-то еще? –
Может ли это произойти, потому что следующего комментария нет, т. Е. Вы нажали следующий комментарий? Или это происходит повсюду? – SRack
См. Править выше. – Liroy