Sha256: 8b5ae875a3fab016cb58eb1e433132c122ad5f223a9b680f1143172f442e4baa

Contents?: true

Size: 1.61 KB

Versions: 7

Compression:

Stored size: 1.61 KB

Contents

class Result
  include Mongoid::Document
  include Mongoid::Timestamps
  #include Mongoid::History::Trackable
  include ActiveModel::MassAssignmentSecurity
  
  include Model::MongoDb::Customizable
  include Model::MongoDb::Commentable
  
  #embedded_in :task
  belongs_to :task
  
  # cached associations
  belongs_to :story
  
  field :offeror_id, type: Integer
  field :user_id, type: Integer
  field :name, type: String
  field :text, type: String
  field :state, type: String
  
  attr_accessible :task_id, :name, :text
  
  validates :task_id, presence: true
  validates :story_id, presence: true
  validates :offeror_id, presence: true
  validates :text, presence: true
  
  after_initialize :cache_associations
  before_validation :cache_associations
  after_create :set_tasks_result_association
  after_destroy :unset_tasks_result_association
  
  #track_history on: [:name, :text, :state], scope: :task
  
  # belongs_to (SQL)
  def offeror; offeror_id ? User.find(offeror_id) : nil; end
  def offeror=(value); self.offeror_id = value.id; end
  
  def user; user_id ? User.find(user_id) : nil; end
  def user=(value); self.user_id = value.id; end
  
  private
  
  def cache_associations
    self.story_id = task.story_id if task_id.present? && (task rescue nil)
    self.offeror_id = task.offeror_id if task_id.present? && (task rescue nil)
  end
  
  def cache_product_association
    self.product_id = task.product_id if task_id.present? && (task rescue nil)
  end
  
  def set_tasks_result_association; task.update_attribute(:result_id, id); end
  def unset_tasks_result_association; task.update_attribute(:result_id, nil); end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
voluntary-0.4.0 app/models/result.rb
voluntary-0.3.0 app/models/result.rb
voluntary-0.2.4 app/models/result.rb
voluntary-0.2.3 app/models/result.rb
voluntary-0.2.2 app/models/result.rb
voluntary-0.2.1 app/models/result.rb
voluntary-0.2.0 app/models/result.rb