【发布时间】:2012-11-19 07:20:35
【问题描述】:
这让我很难调试。在我从 SQLite3 迁移到 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表示法。 -
是的,我假设了类似的事情。但那我该如何解决呢?
-
在这种情况下,我对
like表示法并不十分熟悉。如果你只使用order: desc会有什么区别? -
like是您表中的一列吗?如果是,则需要用双引号将其括起来,因为它是保留字。
标签: ruby-on-rails ruby postgresql