我希望用户能够使用此功能搜索我的数据库:
def self.search(query)
new_query = (query.to_d * 100).to_i
where("price_in_cents LIKE ?", new_query)
end
问题是所有 myprices
都存储在数据库中integers
,因此如果有人搜索“10.99”,他实际上应该搜索“1099”。
但是,上面的功能不起作用,我想知道我做错了什么。
谢谢你的帮助。
我希望用户能够使用此功能搜索我的数据库:
def self.search(query)
new_query = (query.to_d * 100).to_i
where("price_in_cents LIKE ?", new_query)
end
问题是所有 myprices
都存储在数据库中integers
,因此如果有人搜索“10.99”,他实际上应该搜索“1099”。
但是,上面的功能不起作用,我想知道我做错了什么。
谢谢你的帮助。
为什么用“like”来比较数字?您应该使用“=”或“>=”等。
def self.search(query)
new_query = (query.to_d * 100).to_i
where("price_in_cents = ?", new_query)
end
好的,我最终使用了这个:
def self.search(query)
string = query.to_s.gsub('.','')
where("amount_in_cents LIKE ?", "%#{string}%")
end
感谢@grotori 让我走上正轨!