[英]scope causes error in Postgres
以下应用程序可以与sqlite一起正常工作 。
class Book < ActiveRecord::Base
attr_accessible :month, :pages, :title, :year, :author_attributes, :publisher_attributes
belongs_to :author
belongs_to :publisher
accepts_nested_attributes_for :author
accepts_nested_attributes_for :publisher
end
class BooksController < ApplicationController
respond_to(:html)
expose(:books, :ancestor => [:author, :publisher]) { Book.scoped.paginate(:page => params[:page], :per_page=>params[:per_page])}
expose(:book)
# other functions here
end
与PostgreSQL,当我尝试访问http://localhost:3000/books/1
时,它给出以下错误
ActiveRecord::StatementInvalid in Books#show
Showing /Users/tunwinnaing/Projects/rails_projects/books/app/views/books/show.html.haml where line #1 raised:
PG::UndefinedParameter: ERROR: there is no parameter $1
LINE 1: SELECT COUNT(*) FROM "books" WHERE "books"."id" = $1
^
: SELECT COUNT(*) FROM "books" WHERE "books"."id" = $1
Extracted source (around line #1):
1: - provide( :title, "#{book.title} | " )
2: %h1= book.title
3: %hr
4: .row
will_paginate
并且无法删除页面 Book.scoped.paginate
expose(books)
删除Book.scoped.paginate
,它可以工作,但是我不知道如何在没有范围的情况下进行分页。 database.yml
尝试了prepared_statement: false
,并得出结论与此错误无关。 问题出在哪里? 我该如何运作呢?
使用Kaminari
,错误不再存在,并且我已获得所需的功能。
深入研究pg
或will_paginate
的内部工作可能会发现问题的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.