will_paginate 与 rails3集成时,分页 界面显示不出来

本文介绍Rails3引入的XXS防护机制如何影响HTML标签输出,并详细解析了Will_Paginate插件在新环境下遇到的问题及解决办法。通过修改Will_Paginate的源代码,确保其能正确生成安全的分页链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rails 3新增XXS机制,导致html标签在output的时候要进行校验,使用will_paginate的时候会有一些问题,显示不出分页界面,如:
<span class="disabled"><<上一页</span> <span class="current">1</span> <a href="/store/index?page=2">2</a> <a href="/store/index?page=3">3</a> <a href="/store/index?page=2">下一页>></a>

这里面是由于will_paginate中没有对rails 3的新特性予以支持,
需要修改内容 will_paginate\view_helpers.rb中的to_html方法


def to_html
links = @options[:page_links] ? windowed_paginator : []
# previous/next buttons
links.unshift page_link_or_span(@collection.previous_page, 'disabled', @options[:prev_label])
links.push page_link_or_span(@collection.next_page, 'disabled', @options[:next_label])

html = links.join(@options[:separator])
html = "每页显示<b>#{@collection.per_page}</b>条数据,共有<b>#{total_pages}</b>页, 共有<b>#{@collection.total_entries}</b>条数据" + html
html = html.html_safe if html.respond_to? :html_safe
@options[:container] ? @template.content_tag(:div, html, html_attributes) : html
end


原理就是在rails在进行html_safe校验之前,进行安全赋值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值