2011-02-14 25 views
0

我有用戶模式和我在用戶模式要添加find_by_到模型的虛擬屬性

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

我如何添加find_by_name功能給用戶模式,使我能做到這一點如下:

User.find_by_name("Peter Smith") 

回答

0

attr_acessible :name使name像一個常規的實例變量,可以明顯地訪問nameself.name。現在,我想你可以做User.find_by_name('somename');

+1

我還以爲在這些線路上,並試圖it..but它沒有工作.. – rubyprince 2011-02-14 11:10:30

+0

對我也沒有工作,得到了一個`未知的密鑰錯誤。 – 2012-03-16 16:43:58

1

您可以使用它。拆分名分成兩個部分,如first_name和last_name和搜索他們

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