rails3 will_paginate hash object

混江龙づ霸主 提交于 2019-12-18 17:54:31

问题


Looks like will_paginate dosen't support paginating a hash object. I have a list of articles which is basically a collection of yaml files that i want to output on a page.

def index
  @articles = Dir["#{Rails.root}/blog_articles/*.yml"].inject({}) do |h, file|
    h["#{File.basename(file, '.yml')}"] = YAML::load(File.open(file))
    h
  end
end

Can anyone suggest me on how to write the pagination for this? Thanks.


回答1:


In your controller:

def index 
  @articles = Dir["#{Rails.root}/blog_articles/*.yml"].inject({}) do |h, file|   
    h["#{File.basename(file, '.yml')}"] = YAML::load(File.open(file)) 
    h 
  end 

  # paginate the keys of the hash instead of the hash itself
  @article_keys = @articles.keys.paginate
end    

In your views:

<% @article_keys.each do |k| %>
  <%= @articles[k] %>


来源:https://stackoverflow.com/questions/4280660/rails3-will-paginate-hash-object

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!