0

thumbs_upgemに問題があります。

これが私のアプリの仕組みです:

写真は投票者として機能し、ユーザーは投票者として機能します。彼らは写真を好きでも嫌いでもかまいません(したがって、プラスマイナスの数もマイナスになる可能性があります)。写真データベース:user_id :name、、、:image:fame名声はブール値であり、デフォルトではfalseです。

そして、これが私が今やりたいことです:

24時間ごとに、プラスマイナスの集計が最も高い画像の:fame値がfalseからtrueに変更され、画像ライブラリ(pictures#index)から消えて、pictures#highestに表示されます。この1枚の写真のみ。24時間ごとに変更されます。

基本的に、最も好きな写真のブール値を24時間ごとにtrueに変更する方法と、最も好きな写真を選択する方法がわかりません。どんなコードでも大歓迎です。

4

2 に答える 2

0

ブール値を変更するには

@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
于 2013-02-22T12:57:51.507 に答える
0

あなたの問題はthumbs_up宝石ではありません。

あなたの問題は、定期的なタスクをスケジュールする方法がわからないことです。

これに使用できるツールは、Whenevergemです。それはあなたがこのようなことをすることを可能にします:

# 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 
于 2013-02-22T13:03:19.373 に答える