我有一个名为Feed的模型,它记录了两个时间戳,Last_visited和Last_modified。
我想渲染一个last_modified>的Feed列表last_visited
我目前在我的模型中有这个范围:
scope :hottest, lambda {where("'last_modified' > ?", 'last_visited')}
控制器
def home
@user = current_user
@feeds = @user.feeds
end
我正在视图中渲染链接:
%ol
- @feeds.hottest.each do |feed|
%li
= render :partial => 'feeds/feed_link'
这是我的服务器日志呈现的内容(我正在使用Postgres):
Feed Load (0.4ms) SELECT "feeds".* FROM "feeds" WHERE "feeds"."user_id" = 1 AND ('last_modified' > 'last_visited')
我在数据库中有一个条目,其中last_modified> last_visited,但它没有按预期呈现在我的视图中:
Foofeed
Last Modified 2013-06-15 01:08:27 UTC
Last Visited 2013-06-15 01:05:32 UTC
我有点不解为什么这不起作用。
非常感谢任何见解或替代方法。
答案 0 :(得分:0)
试试这个scope :hottest, lambda {where("'last_modified' > ?", last_visited)}
答案 1 :(得分:0)
只是做:
scope :hottest, lambda {where("last_modified > last_visited")}
以下是我的模型User
的示例:
scope :updated, lambda { where("updated_at > created_at").limit(1) }
scope :not_updated, lambda { where("updated_at = created_at").limit(1) }
在控制台中:
1.9.3p194 :004 > User.updated
User Load (1.4ms) SELECT "users".* FROM "users" WHERE (updated_at > created_at) LIMIT 1
=> [#<User id: 7, first_name: "Test1", last_name: "Test1", created_at: "2013-05-21 21:29:54", updated_at: "2013-06-15 00:09:12">]
1.9.3p194 :005 > User.not_updated
User Load (1.3ms) SELECT "users".* FROM "users" WHERE (updated_at = created_at) LIMIT 1
=> [#<User id: 14, first_name: "Test2", last_name: "Test2", created_at: "2013-05-22 20:07:27", updated_at: "2013-05-22 20:07:27">]