0

我有一个名为 Feed 的模型,它记录两个时间戳,Last_visited 和 Last_modified。

我想呈现一个提要列表,其中 last_modified > 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

我有点困惑为什么这不起作用。

任何见解或替代方法将不胜感激。

4

2 回答 2

0

尝试这个scope :hottest, lambda {where("'last_modified' > ?", last_visited)}

于 2013-06-15T01:20:50.053 回答
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">]
于 2013-06-15T14:01:02.970 回答