2011-01-04 8 views
2

レールのwill_paginate gemによって作成されたリンクに「rel = nofollow」を追加する方法はありますか?私はPAGE_NUMBERをオーバーライドする仕事(とも文句を言わないあなたの次のと背中の世話をしていないことが判明rel = nofollowを追加してレールにリンクを投稿する

= will_paginate @users, :renderer => PaginationNoFollow 

答えて

1

リンク)。代わりに、私はrel_valueを上書き:

require 'will_paginate/view_helpers/link_renderer' 
class PaginationNoFollow < WillPaginate::ViewHelpers::LinkRenderer 
    def rel_value(page) 
    case page 
    when @collection.previous_page; 'prev nofollow' + (page == 1 ? ' start nofollow' : '') 
    when @collection.next_page; 'next nofollow' 
    when 1; 'start nofollow' 
    else 
     'nofollow' 
    end 
    end 
end 

のlibにこのクラスを追加し、あなたのビューで:

will_paginate 3では
will_paginate @users, :renderer => PaginationNoFollow 
4

:あなたはあなた自身のLinkRendererを作成し、それをあなたのビューで

require 'will_paginate/view_helpers/link_renderer' 
class PaginationNoFollow < WillPaginate::ViewHelpers::LinkRenderer 

    def page_number(page) 
    unless page == current_page 
     link(page, page, :rel => 'nofollow') 
    else 
     link(page, page, :rel => 'nofollow', :class => 'on') 
    end 

    end 

end 

を使用する必要がある

+0

どこにこのコードを挿入しますか?必要とする... – Gediminas

0

とRails 3私はActionViewを上書きする必要がありました::このようなLinkRenderer:

require 'will_paginate/view_helpers/action_view' 

class PaginationNoFollow < WillPaginate::ActionView::LinkRenderer 
    def rel_value(page) 
    [super, 'nofollow'].compact.join(' ') 
    end 
end 
0

あなたはまた、あなたのページの<head>セクションに次のメタタグを配置することができます

<!-- Prevent webcrawlers to navigate paginations --> 
<% if params[:page] %> 
    <meta name="robots" content="noindex"> 
<% end %> 

will_paginate宝石への依存度を減らした方が良いアプローチだと分かりました。

関連する問題