这给我很难调试这个。在我从SQLite3移动到PostgreSQL之前,它工作完美。对我来说奇怪的是,有另一个控制器具有几乎相同的代码,并且该页面正常工作。任何人都可以帮我吗?Rails:ActiveRecord :: StatementInvalid Debug(postgreSQL)
错误:
ActiveRecord::StatementInvalid in Good_posts#index
Showing c:/ruby/mangfeel/app/views/good_posts/index.html.erb where line #3 raised:
PG::Error: ERROR: syntax error at or near "desc"
LINE 1: ... "good_posts".* FROM "good_posts" ORDER BY like desc LIMIT...
^
: SELECT "good_posts".* FROM "good_posts" ORDER BY like desc LIMIT 15 OFFSET 0
good_posts_controller是造成该问题:
def index
@good_posts = GoodPost.paginate(:page => params[:page], order: 'like desc', per_page: 15)
@good_client_ip = request.remote_ip.encode! 'utf-8'
respond_to do |format|
format.html # index.html.erb
format.json { render json: @good_posts }
end
end
post_controller,这也有类似的代码,但工作得很好:
def index
@posts = Post.paginate(:page => params[:page], order: 'created_at desc', per_page: 15)
@client_ip = request.remote_ip.encode! 'utf-8'
respond_to do |format|
format.html # index.html.erb
format.json { render json: @posts }
end
end
我很感谢所有的帮助!
您喜欢表格中的列吗?如果是的话,你需要用双引号括起来,因为它是一个保留字。 –
看来Postgres中的ORDER BY'不接受'ORDER BY LIKE field'表示法。 – samuil
是的,我假设了一个类似的东西。但是,我将如何修复它呢? –