Method: Spree::Variant.with_prices
- Defined in:
- app/models/spree/variant.rb
.with_prices(pricing_options = Spree::Config.default_pricing_options) ⇒ ActiveRecord::Relation
Returns variants that have a price for the given pricing options If you have modified the pricing options class, you might want to modify this scope too.
146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# File 'app/models/spree/variant.rb', line 146 def self.with_prices( = Spree::Config.) where( Spree::Price. where(Spree::Variant.arel_table[:id].eq(Spree::Price.arel_table[:variant_id])). # This next clause should just be `where(pricing_options.search_arguments)`, but ActiveRecord # generates invalid SQL, so the SQL here is written manually. where( "spree_prices.currency = ? AND (spree_prices.country_iso IS NULL OR spree_prices.country_iso = ?)", .search_arguments[:currency], .search_arguments[:country_iso].compact ). arel.exists ) end |