這給我很難調試這個。在我從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
是的,我假設了一個類似的東西。但是,我將如何修復它呢? –