我有用户模型,我在用户模型中有以下内容
def name
last_name.blank? ? first_name : "#{first_name} #{last_name}"
end
如何将find_by_name函数添加到User模型,以便我可以执行此操作:
User.find_by_name("Peter Smith")
答案 0 :(得分:1)
我认为你可以使用named_scope
Jim和NAD对这个类似问题的回答Rails virtual attribute search or sql combined column search可能是一个好的开始。
答案 1 :(得分:1)
你可以用它。将名称拆分为两部分,first_name和last_name并搜索它们
named_scope :find_by_name, lambda {|name| {:conditions => ["first LIKE '%?%' or last LIKE'%?%'", name.split(' ').first, name.split(' ').last]}}
答案 2 :(得分:0)
attr_acessible :name
使name
像常规实例变量一样,可以name
或self.name
显式访问。现在,我想你可以做User.find_by_name('somename');