Ruby on rails 我是否可以检查是否正在从Rails中的AMP页面调用控制器?
我开始在Rails 5.2应用程序中实现AMP页面。在桌面上,我正在使用Will Paginate gem 然而,对于AMP,我使用的是框架的无限滚动JS,我不想对结果进行分页 因此,在控制器操作中,我想确定用户是否正在查看AMP页面(URL以Ruby on rails 我是否可以检查是否正在从Rails中的AMP页面调用控制器?,ruby-on-rails,Ruby On Rails,我开始在Rails 5.2应用程序中实现AMP页面。在桌面上,我正在使用Will Paginate gem 然而,对于AMP,我使用的是框架的无限滚动JS,我不想对结果进行分页 因此,在控制器操作中,我想确定用户是否正在查看AMP页面(URL以.AMP结尾),以确定此行的内容(包括分页或排除): @products=@products.order('price DESC,RANDOM()').paginate(第页:参数[:页],每页:24) 我如何做到这一点?简单的解决方案就是测试reques
.AMP
结尾),以确定此行的内容(包括分页或排除):
@products=@products.order('price DESC,RANDOM()').paginate(第页:参数[:页],每页:24)
我如何做到这一点?简单的解决方案就是测试
request.format
。这样你就可以写作了
if request.format == :amp
# do not paginate
else
# all other formats we paginate
end
但在控制器内部,我们也可以使用显式的respond\u to
块:
def index
respond_to do |format|
format.amp do
@products = @products.order('price DESC, RANDOM()')
end
format.html do
@products = @products.order('price DESC, RANDOM()').paginate(page: params[:page], per_page: 24)
end
end
end
这将明确指定控制器方法接受和响应的所有格式
您可能已经这样做了,但必须提供index.amp
和index.html
的视图
需要明确的是:这也将阻止所有非指定格式!例如,检索index.json
将得到不允许的405
我认为您需要使用
请求
对象。您可以在这里阅读并确定如何获取.amp
位。这应该可以帮助你得到它