0

我有一個dummy_names表,它包含隨機的first_names和last_names。在db中,有一個條目的first_name,last_name是NULL,反之亦然。如何在一個範圍內獲得多重查詢的結果?

我想寫一個範圍,返回一個隨機的名字(隨機first_name +隨機姓氏從那個能夠)。

我在這裏做錯了什麼...?

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 
    } 

回答

2

在這裏我們去

#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 
+0

BTW:更好的將是一個功能random_first_name和random_last_name,只是要幹:P – 2012-03-14 20:03:41

相關問題