我有用户模式和我在用户模式要添加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