我让will_paginate工作得很好,但我正面临着错误连接Twitter Bootstrap的错误。我的单行will_paginate链接成为项目符号列表。
<% will_paginate @thing %>
变为:
<%= will_paginate @thing, :renderer => BootstrapPagination::Rails %>
或者我觉得更现代:
<%= will_paginate @thing, renderer: BootstrapPagination::Rails %>
我得到了垂直项目符号列表,我尝试过包括=和 - 符号,但我输了。
答案 0 :(得分:5)
要使用will_paginate和bootstrap,建议将gem“bootstrap-will_paginate”添加到项目中(参见http://www.railstutorial.org/book/updating_and_deleting_users#sec-pagination)。
此外,如果您使用的是Twitter Bootstrap 3.x,则会有一个过多的div包装要删除的分页列表。 感谢补丁的这个主题:https://gist.github.com/henrik/1214011
要总结补丁,请将以下内容放在/ config / initializers中,如will_paginate.rb。
# File config/initializers/will_paginate.rb
# From https://gist.github.com/1214011
module WillPaginate
module ActionView
def will_paginate(collection = nil, options = {})
options[:renderer] ||= BootstrapLinkRenderer
super.try :html_safe
end
class BootstrapLinkRenderer < LinkRenderer
protected
def html_container(html)
tag :ul, html, container_attributes
end
def page_number(page)
tag :li, link(page, page, :rel => rel_value(page)), :class => ('active' if page == current_page)
end
def previous_or_next_page(page, text, classname)
tag :li, link(text, page || '#'), :class => [classname[0..3], classname, ('disabled' unless page)].join(' ')
end
def gap
tag :li, link(super, '#'), :class => 'disabled'
end
end
end
end
答案 1 :(得分:2)
我自然而然地在文档的帮助下完成了这项工作。
而不仅仅是这个:
<%= will_paginate @thing, renderer: BootstrapPagination::Rails %>
我需要这个:
<div class="pagination">
<%= will_paginate @thing, renderer: BootstrapPagination::Rails %>
</div>
答案 2 :(得分:2)
更新了bootstrap 4的要点: https://gist.github.com/daino3/661d9742e2b9803e329a880f8c3ee529
此外,有关使用普通旧will_paginate
和bootstrap 4与自定义渲染器的说明:
对于bootstrap 4,将this gist code投入config/initializers/will_paginate.rb
然后,下面的代码进入application_helper.rb
:
def will_paginate(collection_or_options = nil, options = {})
if collection_or_options.is_a? Hash
options, collection_or_options = collection_or_options, nil
end
unless options[:renderer]
options = options.merge renderer: WillPaginate::ActionView::BootstrapLinkRenderer
end
super *[collection_or_options, options].compact
end
最后,在视图中调用如下:
nav aria-label="blah"
= will_paginate @items