我有用戶模式和我在用戶模式要添加find_by_到模型的虛擬屬性
def name
last_name.blank? ? first_name : "#{first_name} #{last_name}"
end
我如何添加find_by_name功能給用戶模式,使我能做到這一點如下:
User.find_by_name("Peter Smith")
我有用戶模式和我在用戶模式要添加find_by_到模型的虛擬屬性
def name
last_name.blank? ? first_name : "#{first_name} #{last_name}"
end
我如何添加find_by_name功能給用戶模式,使我能做到這一點如下:
User.find_by_name("Peter Smith")
我認爲你可以做到這一點使用named_scope
吉姆和NAD回答這個類似的問題Rails virtual attribute search or sql combined column search可能是一個良好的開端。
attr_acessible :name
使name
像一個常規的實例變量,可以明顯地訪問name
或self.name
。現在,我想你可以做User.find_by_name('somename');
您可以使用它。拆分名分成兩個部分,如first_name和last_name和搜索他們
named_scope :find_by_name, lambda {|name| {:conditions => ["first LIKE '%?%' or last LIKE'%?%'", name.split(' ').first, name.split(' ').last]}}
我還以爲在這些線路上,並試圖it..but它沒有工作.. – rubyprince 2011-02-14 11:10:30
對我也沒有工作,得到了一個`未知的密鑰錯誤。 – 2012-03-16 16:43:58