From 5f9b0890fba5fb7f1a89fd31893eb2f040282953 Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Sat, 20 May 2017 16:58:49 +1200 Subject: [PATCH] Move seed.interesting to a scope --- app/models/seed.rb | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/app/models/seed.rb b/app/models/seed.rb index 192faa897..09f550453 100644 --- a/app/models/seed.rb +++ b/app/models/seed.rb @@ -31,7 +31,8 @@ class Seed < ActiveRecord::Base allow_nil: true scope :tradable, -> { where("tradable_to != 'nowhere'") } - + scope :interesting, -> { tradable.has_location } + scope :has_location, -> { joins(:owner).where.not("members.location": nil) } TRADABLE_TO_VALUES = %w(nowhere locally nationally internationally).freeze validates :tradable_to, inclusion: { in: TRADABLE_TO_VALUES, message: "You may only trade seed nowhere, "\ @@ -77,27 +78,6 @@ class Seed < ActiveRecord::Base end end - def interesting? - # assuming we're passed something that's already known to be tradable - # eg. from Seed.tradable scope - return false if owner.location.blank? # don't want unspecified locations - true - end - - # Seed.interesting - # returns a list of interesting seeds, for use on the homepage etc - def self.interesting - howmany = 12 # max number to find - interesting_seeds = [] - - Seed.tradable.each do |s| - break if interesting_seeds.size == howmany - interesting_seeds.push(s) if s.interesting? - end - - interesting_seeds - end - def seed_slug "#{owner.login_name}-#{crop}".downcase.tr(' ', '-') end