2017-03-26 18 views
-3
Showing /app/app/views/admin/business/_business_update_form.html.erb where line #31 raised: 

PG::UndefinedFunction: ERROR: operator does not exist: character varying = integer 

LINE 1: SELECT name, id FROM categories WHERE parent = 1 
                ^

HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. 

: SELECT name, id FROM categories WHERE parent = 1 
Extracted source (around line #10): 

parent = object.category.parent 
    sql = "SELECT name, id FROM categories WHERE parent = " + parent.to_s 
    Category.find_by_sql(sql) 

end 

すべての解決策。助けてください。SQL文がSqliteで動作していて、PostgreSQLで動作していないのはなぜですか?

+2

エラーメッセージには何が問題なのですか?列の型と変数の型は一致する必要があります。これは次のようなものです: '... WHERE parent = 1 :: character varying' –

答えて

1

ActiveRecordを使用してRailsメソッドを使用する方がはるかに優れています。そうすれば、Railsはdb(sqlite、pg、mysqlなど)上で動作するdbクエリを作成します。

parent = object.category.parent 
Category.where(parent: parent).select(:id, :name) 
関連する問題