Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将分页计数添加到Rails API中的相同GET响应中_Ruby On Rails_Pagination_Will Paginate - Fatal编程技术网

Ruby on rails 将分页计数添加到Rails API中的相同GET响应中

Ruby on rails 将分页计数添加到Rails API中的相同GET响应中,ruby-on-rails,pagination,will-paginate,Ruby On Rails,Pagination,Will Paginate,我可以实现同样的功能,但需要使用多个命令。有没有办法在一个GET请求中组合它们和呈现API响应 列出此页面中的所有记录: render json: Apartment.paginate(page: 1, per_page: 20) 获取总页数: render json: Apartment.paginate(page: 1, per_page: 20).total_pages 获取总条目数: render json: Apartment.paginate(page: 1, per_page:

我可以实现同样的功能,但需要使用多个命令。有没有办法在一个GET请求中组合它们和
呈现
API响应

列出此页面中的所有记录:

render json: Apartment.paginate(page: 1, per_page: 20)
获取总页数:

render json: Apartment.paginate(page: 1, per_page: 20).total_pages
获取总条目数:

render json: Apartment.paginate(page: 1, per_page: 20).total_entries
对任何方法都满意:组合响应、覆盖响应,甚至向每条记录添加计数


非常感谢

您可以在一个json响应中发送所有3个命令,然后所有数据都在一个对象中

@apartments = Apartment.paginate(page: 1, per_page: 20)
render json: {apartments: @apartments, 
             total_pages: @apartments.total_pages, 
             total_entries: @apartments.total_entries }

您可以在一个json响应中发送所有3个命令,然后所有数据都在一个对象中

@apartments = Apartment.paginate(page: 1, per_page: 20)
render json: {apartments: @apartments, 
             total_pages: @apartments.total_pages, 
             total_entries: @apartments.total_entries }

在我的例子中,在散列中组合响应,例如,
render json:{total_pages:@partments.total_pages,total_entries:@partments.total_entries,partments:@partments}
无法完全工作

根本原因是,
serializers/plant\u serializer.rb
没有执行,我必须找到解决方案,像往常一样执行它。因此,如果使用活动模型序列化程序,则选项为:

创建文件(如果尚未创建): config/initializers/active_model_serializer.rb

# to support multiple response types, convert into format conforming JSON API specification
ActiveModelSerializers.config.adapter = :json_api
公寓_controller.rb:

@apartments = Apartment.paginate(page: 1, per_page: 20)

render json: @apartments, meta: { total_pages: @apartments.total_pages, total_entries: @apartments.total_entries }


在我的例子中,在散列中组合响应,例如,
render json:{total_pages:@partments.total_pages,total_entries:@partments.total_entries,partments:@partments}
无法完全工作

根本原因是,
serializers/plant\u serializer.rb
没有执行,我必须找到解决方案,像往常一样执行它。因此,如果使用活动模型序列化程序,则选项为:

创建文件(如果尚未创建): config/initializers/active_model_serializer.rb

# to support multiple response types, convert into format conforming JSON API specification
ActiveModelSerializers.config.adapter = :json_api
公寓_controller.rb:

@apartments = Apartment.paginate(page: 1, per_page: 20)

render json: @apartments, meta: { total_pages: @apartments.total_pages, total_entries: @apartments.total_entries }


您可以在每行
@plants.total\u页面
@plants.total\u条目上重复使用
@plants
来干燥它。我已经检查过了,它工作得很好。因此,一般来说,这是一种减少API点击次数的方法。这似乎有一个问题。我发现在将
@plants
放入此散列时未执行活动模型序列化程序。具体来说,这个
类ApartmentSerializer
不起作用。您认为有什么合适的选项可以使用活动模型序列化程序的方法吗?我已经回答了自己的问题,所以现在可以对其进行排序。您可以在每行
@plants.total_页面
@plants.total_条目
上重复使用
@plants
,使其干燥。我已经检查过了,它工作得很好。因此,一般来说,这是一种减少API点击次数的方法。这似乎有一个问题。我发现在将
@plants
放入此散列时未执行活动模型序列化程序。具体来说,这个
类ApartmentSerializer
不起作用。您认为有什么合适的选项可以在活动模型序列化器中使用您的方法吗?我已经回答了自己的问题,所以对其进行了排序now@liamison我也很欣赏你自己回答问题的方式,但保持原样+请回答以下问题:)不客气。这个解决方案仍然存在于我的应用程序中,而且从未回头修改过,因为它在我的应用程序中运行得非常完美case@liamison我也很欣赏你自己回答问题的方式,但保持原样+请回答以下问题:)不客气。这个解决方案仍然存在于我的应用程序中,并且从未回头修改过,因为它在我的情况下非常有效