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