2011-02-14 7 views
0

나는 사용자 모델을 가지고 있고이 사용자 모델 나는이 작업을 수행 할 수 있도록 내가 사용자 모델에 find_by_name 기능을 추가 할 수있는 방법는 가상 속성

def name 
    last_name.blank? ? first_name : "#{first_name} #{last_name}" 
end 

에 다음 한의 모델에 find_by_을 추가하려면 :

User.find_by_name("Peter Smith") 

답변

0

attr_acessible :namename은 보통 인스턴스 변수와 같으며 name 또는 self.name으로 명백하게 액세스 할 수 있습니다. 이제 User.find_by_name ('somename')을 할 수 있다고 생각합니다.

+1

나는 또한이 라인에 생각이 작동하지 않았다 it..but 시도했다 .. – rubyprince

+0

검색, 가지고' 알 수없는 키'오류입니다. –

1

이것을 사용할 수 있습니다. 두 부분으로, FIRST_NAME과 LAST_NAME로 이름을 분할하고 하나 나를 위해 작동하지 않았다 그들에게

 
named_scope :find_by_name, lambda {|name| {:conditions => ["first LIKE '%?%' or last LIKE'%?%'", name.split(' ').first, name.split(' ').last]}} 
+0

왜 당신은 여기에 같은 것을 사용하고 있습니까? 왜 이처럼'named_scope : find_by_name, lambda {| name | {: conditions => [ "first_name =? 또는 last_name =?", name.split ('') .first, name.split ('') .last]}} ' – rubyprince

+0

중간 이름도 포함되어 있습니다. 직접 비교하면 기록을 놓치게됩니다 ... – rubyprince