Sha256: 73ba86b7be2231e5905add717c58330f225c4a74da41216dae4ed0a0677687cf
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
class Poll < ActiveRecord::Base has_many :choices, :dependent => :destroy validates_presence_of :question validates_presence_of :post has_many :votes, :dependent => :destroy belongs_to :post attr_accessible :question def voted?(user) !self.votes.find_by_user_id(user.id).nil? end def add_choices(choices) choices.each do |description| choice = self.choices.new(:description => description) choice.save end end def self.find_recent(options = {}) options.reverse_merge! :limit => 5 find(:all, :order => "polls.created_at desc", :limit => options[:limit], :include => [:post => :user]) end def self.find_popular(options = {}) options.reverse_merge! :limit => 5, :since => 10.days.ago find(:all, :order => "polls.votes_count desc", :limit => options[:limit], :include => [:post => :user], :conditions => ["polls.created_at > ?", options[:since]] ) end def self.find_popular_in_category(category, options = {}) options.reverse_merge! :limit => 5 self.includes(:post).order('polls.votes_count desc').limit(options[:limit]).where('posts.category_id = ?', category.id) end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
community_engine-2.3.1 | app/models/poll.rb |
community_engine-2.3.0 | app/models/poll.rb |
community_engine-2.1.0 | app/models/poll.rb |
community_engine-2.0.0 | app/models/poll.rb |