我希望有人能幫助我/指出我在正確的方向與以下。通過特定的屬性類型鏈接到上一個/下一個記錄
我有一個動物模型,它目前由貓和狗組成。我有一欄叫animal_type將定義的動物是什麼
當我查看記錄(show動作),那麼它可以是任何動物類型,接下來我已經建立,並通過所有的動物記錄以前的鏈接循環
def next_animal
animal = self.class.order('created_at desc').where('created_at > ?', self.created_at)
animal.first if animal
end
def previous_animal
animal = self.class.order('created_at desc').where('created_at < ?', self.created_at)
animal.last if animal
end
控制器
def show
@animal = Animal.find(params[:id])
end
查看
<% if @animal.previous_animal %>
<%= link_to(@animal.previous_animal, {class: 'prev-page'}) do %>
<span class="glyphicon glyphicon-chevron-left"></span> Meet <span class="name"><%= @animal.previous_animal.name %></span>, the <%= animal_breed(@animal.previous_animal) %>
<% end %>
<% end %>
因此,如果我正在看狗,我需要做什麼才能說只能通過下一個和以前的狗,而不包括任何貓,反之亦然,所以如果我看貓記錄,只有循環通過其他貓..
林有點卡住關於如何實現..伊夫想過一個範圍
scope :dog_type, -> { where(animal_type: 'Dog') }
,但仍不能確定如何落實
任何幫助讚賞
感謝
謝謝MrYoshiji,任何區別在兩個答案之間的表現? – Richlewis 2014-10-02 14:55:34
是的,我只是用參數更新了我的答案。 – MrYoshiji 2014-10-02 14:56:35
謝謝你這是一個很好的解釋...因此,我可以分配給局部變量越多性能越好? – Richlewis 2014-10-02 14:58:32