looooong时间读者和知识获得者,第一次海报。我已经开始学习Rails了,我肯定需要帮助。
我正在遵循这个代码的教程:
class BooksController < ApplicationController
def index
if params[:query].present?
@books = Book.search(params[:query], page: params[:page])
else
@books = Book.all.page params[:page]
end
end
我正在尝试将此应用于我自己的项目(我有"目的地"而不是"书籍"(。我不明白的是.page参数是什么,它是从哪里生成的?
我在控制器上收到一个"未定义方法"页面">,我不明白它是什么。
这是我的代码:
class DestinationsController < ApplicationController
def index
if params[:query].present?
@destination = Destination.search(params[:query], page: params[:page])
else
@destination = Destination.all.page params[:page]
end
end
我在Destinations表中唯一的字段是country。我想也许这可以取代它,但唉,不。是的,我对此很陌生。感谢您的帮助。
你的编程知识有多深,尤其是Ruby?
本教程显然使用了分页宝石,我会选择kaminari,因为它是我使用的。
gemmonkey补丁关系包括方法page
和per
,正如您在Kaminari主页中清楚地看到的,该方法只接受page(page_number)
,并将使用SQL LIMIT
和OFFSET
来分割您的记录。params[:page]
将是一个简单的HTTP GET
参数?page=12
。
我注意到您也在使用Destination.search
,这不是标准的,是您创建的吗?如果是,它可能应该是类似Destination.search(params[:query]).page(params[:page])
的东西。然而,如果它使用的是meta_search(你不应该这样做(或ransak,它们是非常先进的,你应该检查与Kaminari的兼容性,我很确定它存在于ransack 中