Ruby on rails 如何在一个范围内获得多个查询的结果?

Ruby on rails 如何在一个范围内获得多个查询的结果?,ruby-on-rails,ruby-on-rails-3,activerecord,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Activerecord,Ruby On Rails 3.1,我有一个dummy\u names表,其中包含随机的名字和姓氏。在db中,如果条目有第一个名称,则最后一个名称为NULL,反之亦然 我试图编写一个返回随机名称的范围(随机名字+该表中的随机姓氏) 我做错了什么…? scope :random_name, lambda { fname = self.where('first_name IS NOT NULL').first lname = self.where('last_name IS NOT NULL').first f

我有一个
dummy\u names
表,其中包含随机的名字和姓氏。在db中,如果条目有第一个名称,则最后一个名称为NULL,反之亦然

我试图编写一个返回随机名称的范围(随机名字+该表中的随机姓氏)

我做错了什么…?

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
  }
我们开始

#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

顺便说一句:最好是一个函数random_first_name和random_last_name,只是为了干燥:P