0

임의의 first_names 및 last_names가 포함 된 dummy_names 테이블이 있습니다. 항목에 대한 first_name이있는 db에서 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

BTW 이동 : 조금만 더 건조로, 함수 random_first_name 및 random_last_name 것 : P –

관련 문제