opportunity.rb 1.06 KB
class SnifferPlugin::Opportunity < ActiveRecord::Base

  self.table_name = :sniffer_plugin_opportunities

  belongs_to :sniffer_profile, :class_name => 'SnifferPlugin::Profile', :foreign_key => :profile_id
  has_one :profile, :through => :sniffer_profile

  belongs_to :opportunity, :polymorphic => true

  # for has_many :through
  belongs_to :product_category, :class_name => 'ProductCategory', :foreign_key => :opportunity_id,
    :conditions => ['sniffer_plugin_opportunities.opportunity_type = ?', 'ProductCategory']
  # getter
  def product_category
    opportunity_type == 'ProductCategory' ? opportunity : nil
  end

  scope :product_categories, {
    :conditions => ['sniffer_plugin_opportunities.opportunity_type = ?', 'ProductCategory']
  }

  if defined? SolrPlugin
    acts_as_searchable :fields => [
        # searched fields
        # filtered fields
        # ordered/query-boosted fields
      ], :include => [
        {:product_category => {:fields => [:name, :path, :slug, :lat, :lng, :acronym, :abbreviation]}},
      ]

    handle_asynchronously :solr_save
  end

end