2013-03-14 61 views
0

我正在嘗試爲以前的帖子和下一篇文章創建鏈接。我不使用will_paginate的原因是因爲我不想使用「Previous」文本,而是希望將其作爲帖子的標題(即post.title)。未定義的方法`標題'爲#<ActiveRecord :: Relation:// post.previous.title

要做到這一點,我跟着另外一個答案,並創造了在我的崗位型號如下關係:

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

    def next 
    Post.where(["id < ?", id].first) 
    end 

這是我在我的_posts部分。現在我保留HTML,因爲它具有古怪的風格,我不確定如何包含圖像並跨越標籤。

   <% if post.previous %> 
      <a href="#" class="action-left"> 
       <img src="img/arrow_red_right.png"> 
       <span><%= post.previous.title %></span> 
      </a> 
      <% end %> 

我得到的錯誤:

undefined method `title' for #<ActiveRecord::Relation:0x007f8145616250> 

我猜它是與我在Post模型中定義以前的方式。幫助讚賞!

回答

4

你需要修復的括號在你的方法:)

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

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

在'next'方法,我相信查詢應該比標誌更大(>):'Post.where(「ID> ?「,id).first' – sergelerator 2013-03-14 05:13:42

+0

啊,你是對的。你應該對這個問題發表評論,以便OP知道:) – jvnill 2013-03-14 05:19:10

相關問題