Ruby on rails Rails3:按第二个和第一个名字搜索用户?
我想在我的用户模型中编写一个简单的搜索方法,它检查第二个名字和第一个名字,并返回匹配的用户。我现在有这个,但抛出了一个错误:Ruby on rails Rails3:按第二个和第一个名字搜索用户?,ruby-on-rails,Ruby On Rails,我想在我的用户模型中编写一个简单的搜索方法,它检查第二个名字和第一个名字,并返回匹配的用户。我现在有这个,但抛出了一个错误: def self.search(search) if search where("first_name like ? or second_name like ?", "%#{search}%") else all end end 错误是:在:first\u name like中绑定变量的数量错误(1代表2)?或者像
def self.search(search)
if search
where("first_name like ? or second_name like ?", "%#{search}%")
else
all
end
end
错误是:在:first\u name like中绑定变量的数量错误(1代表2)?或者像这样的第二个名字?
我怎样才能解决这个问题
谢谢您有两个
?
,这意味着其中
方法需要两个参数:
def self.search(search)
if search
where("first_name like ? or second_name like ?", "%#{search}%", "%#{search}%")
else
all
end
end
我不确定你是否可以简化那些,比如使用一个参数而不是重复的两个参数,但是你可以稍微整理一下:
def self.search(search)
if search
q = "%#{search}%"
where("first_name like ? or second_name like ?", q, q)
else
all
end
end
您有两个?
,这意味着其中方法需要两个参数:
def self.search(search)
if search
where("first_name like ? or second_name like ?", "%#{search}%", "%#{search}%")
else
all
end
end
我不确定你是否可以简化那些,比如使用一个参数而不是重复的两个参数,但是你可以稍微整理一下:
def self.search(search)
if search
q = "%#{search}%"
where("first_name like ? or second_name like ?", q, q)
else
all
end
end
你可以用
where("first name like :name or second name like :name", :name => "%foo%")
你可以用
where("first name like :name or second name like :name", :name => "%foo%")
我猜您需要def self.search(first,last)
,然后将它们都放在where
子句末尾的dohickey中。我不太了解Rails,但这就是我要开始的地方。我猜您需要def self.search(first,last)
,然后将这两个都放在where
子句末尾的dohickey中。我不太了解Rails,但这就是我要开始的地方。这不起作用,我不认为它应该被标记为true。这不起作用,我认为它不应该被标记为true。