gpt4 book ai didi

ruby-on-rails - 如何向 jbuilder 索引页添加额外的属性

转载 作者:行者123 更新时间:2023-12-04 06:36:26 25 4
gpt4 key购买 nike

我一直在尝试将自定义属性添加到 jbuilder 就像我在显示页面中所做的那样到我的索引页面进行分页,将分页并且它不显示自定义属性。

例如我在我的 Controller Action 中所拥有的是

  def index
#respond_with
@publishers = Publisher.paginate(:page => params[:page], :per_page => 30)
respond_to do |format|
format.json
end
end

我的 index.json.jbuilder 是
json.array!(@publishers) do |publisher|
json.extract! publisher, :id, :name, :url
json.categories do
publisher.categories.each do |category|
json.name category.name
json.id category.id
json.url url_for(category)
end
end
end

我想要的是
json.current_page @publishers.current_page
json.total_pages @publishers.totla_entries

json.array!(@publishers) do |publisher|
json.extract! publisher, :id, :name, :url
json.categories do
publisher.categories.each do |category|
json.name category.name
json.id category.id
json.url url_for(category)
end
end
end

这样我就在索引页的 json 输出中显示了 current_page 和总页数。

目前我所拥有的是
[{"id":1,"name":"facebook","url":"http://www.facebook.com","categories":{"name":"Art and Crafts","id":1,"url":"/categories/1-art-and-crafts"}}]

我怎样才能做到这一点。我也在使用 willpaginate

最佳答案

经过长时间的忙碌,看看 jbuilder 显示模板是如何工作的,我意识到 json.array!方法覆盖了块外的任何东西,所以我做了几个 tweeks 并通过在如下所示的根节点中敲击来解决它

json.current_page @publishers.current_page
json.total_pages @publishers.total_entries
json.total_records Publisher.count

json.publishers do |publishersElement|
publishersElement.array!(@publishers) do |publisher|
json.extract! publisher, :id, :name, :url
json.categories do
publisher.categories.each do |category|
json.name category.name
json.id category.id
json.url url_for(category)
end
end
end
end

我得到的输出是这个
{"current_page":1,"total_pages":1,"total_records":1,"publishers":[{"id":1,"name":"Bellanaija","url":"http://www.bellanaija.com","categories":{"name":"Art and Crafts","id":1,"url":"/categories/1-art-and-crafts"}}]}

关于ruby-on-rails - 如何向 jbuilder 索引页添加额外的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25930100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com