未定义的方法`prev'对于

时间:2015-12-16 22:56:29

标签: ruby-on-rails ruby undefined

_form

<%= link_to 'Previous Post', blog_path(@post).previous if @post.previous %>
<%= link_to 'Next Post', blog_path(@post).next if @post.next %>

我在这里很困惑,伙计们。 next有效,但previous给了我错误undefined method 'previous' for "/blog/4":String

post.rb

  def next
    Post.where("id > ?", id).first
  end

  def previous
    Post.where("id < ?", id).last
  end

如果我将单词previous切换为last,则错误会消失,但不会链接到上一个帖子,而是链接到当前帖子。

1 个答案:

答案 0 :(得分:1)

您在previous方法上调用nextblog_path,该方法只返回普通String

您需要确保在@post上调用它:

blog_path(@post.previous)