Jacob
Jacob

Reputation: 6477

How to get result of multiples queries in a scope?

I have a dummy_names table which contains random first_names and last_names. In the db, where there is a first_name for an entry, the last_name is NULL and vice versa.

I'm trying to write a scope that returns a random name (a random first_name + a random last_name from that able).

What am I doing wrong here...?

scope :random_name, lambda {
    fname = self.where('first_name IS NOT NULL').first
    lname = self.where('last_name IS NOT NULL').first
    fname.first_name.to_s + " " + lname.last_name.to_s
  }

Upvotes: 0

Views: 68

Answers (1)

Tim Kretschmer
Tim Kretschmer

Reputation: 2280

here we go

#in your initializer
module ActiveRecord
  class Base
    def self.random
      if (c = count) != 0
        find(:first, :offset =>rand(c))
      end
    end
  end
end



#in your model
def self.random_name
  "#{self.where('first_name IS NOT NULL').random.first_name} #{self.where('last_name IS NOT NULL').random.last_name}"
end

Upvotes: 2

Related Questions