0

我目前有一个模型Books,它存储包括书的isbn.

我使用这种方法搜索书籍(实际上只使用他们的 ISBN)

def self.search(search)
 search_condition = "%" + search.downcase + "%"
 find(:all, :conditions => ['(isbn LIKE ? OR lower(title) LIKE ? OR lower(author) LIKE ? OR lower(edition) LIKE ? OR lower(publisher) LIKE ?) AND removed_on IS NULL', search_condition, search_condition, search_condition, search_condition, search_condition])
end

困扰我的是,在我的本地机器上,如果我搜索“076374591X”,我会得到所有带有该 ISBN 的书籍,但在我在 Heroku 上的应用程序上它不会返回任何内容。我尝试删除“X”,只搜索“076374591”,这对两者都有效。就好像 ISBN 中的“X”打破了它(但仅在服务器上)。

注意isbn是一个:string

什么可能导致此问题,我该如何解决?

4

1 回答 1

1

您按 ISBN 区分大小写,但首先按小写搜索词进行搜索。所以你应该找到“076374591x”,而不是“076374591X”。

也尝试降低 isbn:

find(:all, :conditions => ['(lower(isbn) LIKE ? OR lower(title) ...
于 2012-09-18T12:13:57.853 回答