2013-02-22 63 views
0

我遇到了问题thumbs_up gemthumbs_up其中一个最喜欢的照片(导轨)

这里是我的应用程序是如何工作的:

图片充当voteable,用户作为选民。他们可以喜欢也可以不喜欢图片(所以plusminus计数也可以消极)。在图片数据库中:user_id,:name:image,:fame。 Fame是一个布尔值,默认为false。

这里就是我想现在要做的:

每24小时最高plusminus相符的图片获取其:fame值从虚假到真实的改变,从而从图片库(图片#指数)和消失出现在图片#最高。只有这一张照片每24小时更换一次。

基本上我不知道如何将最喜欢的图片的布尔值更改为每24小时为真,以及如何选择最喜欢的图片。任何代码表示赞赏。

+0

你应该改变你的问题,包括你的代码有什么问题。 – jvnill 2013-02-22 11:52:03

+0

我不知道如何做我想做的事情(每24小时更换一次图片),只是粘贴代码以防万一。 – figdig 2013-02-22 11:55:39

回答

0

你的问题不是thumbs_up宝石。

你的问题是,你不知道如何安排定期任务。

您可以使用的工具是Whenever gem。它可以让你做这样的事情:

# in whenever 
every 24.hours do 
    rake "pictures:set_fame" 
end 

# lib/tasks/my_task.rake 
namespace :pictures do 
    task :set_fame => :environment do 
    # N.B.: I haven't had the chance to test this query. 
    Picture.where(fame: true).first.update_attribute(:fame, false) 
    Picture.order('tally DESC').first.update_attribute(:fame, true) 
    end 
end 
+0

所以我这样做: '#附表 每2.minutes做 耙 “的照片:set_fame” 结束 ' 和 '#set_fame.rake 命名空间:图片做 任务:set_fame =>:环境做 Picture.where(成名:真).update_attribute(:成名,假)。 Picture.order( 'plusminus_tally DESC')first.update_attribute(:名声,真) 结束 end' ,它不更新。我错在哪里?并感谢您的帮助! – figdig 2013-02-22 13:55:55

+0

我真的不确定如何为最流行的图片编写查询,而且我现在无法对其进行测试。所以这可能是一个潜在的问题。 – Jesper 2013-02-22 14:19:55

+0

耙子中止! 未定义的方法'update_attribute'为# /Users/XXXX/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.8/lib/active_record/relation/delegation 。rb:45:in'method_missing' /Users/XXXX/rp/XXXX/lib/tasks/set_fame.rake:3:in ' 任务:TOP =>图片:set_fame (通过使用--trace运行任务查看完整跟踪) 也许这个错误有帮助吗? :) – figdig 2013-02-22 14:21:38