0

ランダムなfirst_namesとlast_namesを含むdummy_namesテーブルがあります。 dbには、エントリのfirst_nameがあり、last_nameはNULLであり、その逆もあります。複数のクエリの結果をスコープで取得するにはどうすればよいですか?

ランダムな名前(ランダムなfirst_name +ランダムなlast_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

ところで行く:より良いだけ乾燥する、機能random_first_nameとrandom_last_name次のようになります。P –

関連する問題