我有一个自定义的will_paginate渲染器,覆盖了WillPaginate :: ViewHelpers :: LinkRenderer的链接方法,代码如下:
def link(text, target, attributes = {})
"<a href='/users/95/friends_widget?page=#{target}' rel='next' data-remote='true'>#{text}</a>"
end
...这很好,但在链接中可以看到硬编码的95。我如何通过Rails视图将参数(例如用户或用户ID)传递到自定义渲染器中?
<%= will_paginate(@user_friends, :remote => true, :renderer => FriendsRenderer) %>
还是有什么我没注意到的东西吗?有更简单的方法吗?
顺便说一下:@user_friends 在自定义渲染器中不可用,我已经尝试在will_paginate调用的末尾添加参数,例如::user => user)
will_paginate(@user_friends, :params => { :anything => "hello" })
,然后分页链接将会是类似于 "/friends?page=2&anything=hello" 的形式。接下来,如果好友页面需要的话,它可以将文本字段的值设置为params[:anything]
。 - Henrik N