[英]PostgreSQL Ruby Heroku Problems
此搜索條件在 MySQL 和 SQLite 中工作正常,但在 PostgreSQL 中失敗:
CONTROLLER:
@inventories = Inventory.search(params[:search], params[:page])
MODEL:
def self.search
paginate :per_page => 10,
:page => page,
:conditions => ['part_number = ? OR item LIKE ? OR catalognumber LIKE ?', "#{search}", "%#{search}%", "%#{search}%"],
:order => 'item'
end
它在 HEROKU 的 PostgreSQL 日志中產生此錯誤:
ActiveRecord::StatementInvalid (PGError: ERROR: invalid input syntax for integer: ""
2011-06-11T20:25:46+00:00 app[web.1]: : SELECT * FROM "inventories" WHERE (part_number = E'' OR item LIKE E'' OR catalognumber LIKE E'') ORDER BY item LIMIT 10 OFFSET 0):
我怎樣才能解決這個問題?
解決方案...這是使用 LIKE 而不是 ILIKE http://www.postgresql.org/docs/8.3/static/functions-matching.ZFC35FDC70D5FC69D269883A822C7A53的問題
據推測,其中一個字段期望 integer,而 Postgres 在這方面的許可比 MySQL 少得多。 我不應該有任何引號。 (它應該為零,或者根本沒有字段。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.