我遇到了thumbs_up gem的问题。
以下是我的应用的工作原理:
图片充当投票,用户充当选民。他们可以喜欢和不喜欢图片(所以加号计数也可能是负面的)。在图片数据库中:user_id,:name
,:image
,:fame
。 Fame是一个布尔值,默认为false。
以下是我现在想做的事情:
每24小时,具有最高plusminus计数的图片将其:fame
值从false更改为true,从而从图片库(图片#index)中消失并出现在图片#最高。只有这一张照片,每24小时更换一次。
基本上我不知道如何每24小时将最喜欢的图片的布尔值更改为true,以及如何选择最喜欢的图片。任何代码都表示赞赏。
答案 0 :(得分:0)
更改布尔值do
@pic.update_attribute(:fame, true)
每24小时尝试使用whenever
宝石
https://github.com/javan/whenever
http://railscasts.com/episodes/164-cron-in-ruby
以最多票数选择图片试试这个
@best_pic = Picture.all.sort{|a,b| b.votes.count <=> a.votes.count}.first
答案 1 :(得分: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