category
の列が変更されたときに何かを表示することです。Rails:以前の値を比較する方法
しかし、最後のデータには何も表示されません。
たとえば、Event
モデルのデータは次のとおりです。私は、以下のように表示されません02:00 (change category)
最後のデータを表示したいのですが何が、
id start_at category
1 02:00 3
2 03:00 2
3 04:00 1
。
04:00
03:00 (change category)
02:00 (change category)
モデル
class Event < ActiveRecord::Base
default_scope -> { order(category: :asc, start_at: :asc) }
def previous
Event.where("id < ?", self.id).order("category ASC, start_at ASC").first
end
ビュー
<% @events.each do |event| %>
<% if event.previous %>
<%= event.start_at %> (change category)<br>
<% end %>
<% end %>
私は(前のデータが存在しないため)02:00 (change category)
が表示されない理由を知っています。
私がしたいことを実現する方法を教えていただければ幸いです。あなたは単純な変数でこれを行うことができ、あなたは余分なデータベース呼び出しを行う必要はありません
なぜあなたは 'if'を削除しないのですか?つまり、あなたがその値を表示したいのであれば、' if'が表示されないようにしていれば...それ以外は何か、私は知らない。 – fanta