2012-05-30 90 views
1

我很難自定義默認kaminari模板。定製kaminari分頁模板

我已經使用了生成器來創建kaminari模板文件。在雷/ paginator.html.haml:

= paginator.render do 
    %nav.pagination 

所有我想要做的就是在這個訪問助手的ActionView一樣的link_to,或呈現。我搜索了源代碼,我找不到任何傳遞給此渲染方法的幫助者的傾向。

從本質上講,是能夠做到這一點:

= paginator.render do 
    %nav.pagination 
    = render :partial => 'custom links' 
    = link_to "custom link", custom_path 

..would解決我的問題。

回答

4

我沒有得到滿意的答案,所以我會提交我自己的解決方案。

幫助器不能在paginator.render塊中使用。

所以,首先我生成雷自定義模板文件:

rails g kaminari:views default -e haml 

創建內容的新文件雷/ custom.html.haml:

#pagination 
    = paginate custom 
    = render :partial => "kaminari/custom_view_file" 

更換雷分頁程序助手(paginate @results)在您的視圖文件中:

= render :partial => "kaminari/custom", :object => @results 
1

你應該能夠做這樣的事情:

# /app/views/kaminari/_paginator.html.erb 

= paginator.render do 
    %nav.pagination 
    = render :partial => 'shared/custom' 
    = link_to "custom link", custom_path 

基本上,您需要提供部分的完整路徑,因爲它可能不駐留在同一目錄中。

編輯:

我認爲雷不會導入鐵軌查看在_paginator.html.erb的paginate.render塊助手。 要自定義由paginator生成的輸出,您應該改爲
1.自定義_next_page.erb.html等等,您可以在其中使用rails helpers。我不知道爲什麼它是這樣。
2.如果你想顯示一些常見的html作爲paginator的一部分,我建議你把它放在佈局。 Paginator是關於頁面的導航。

例如,這是_prev_page.html.erb:

<span class="prev"> 
    <%= link_to "google", "www.google.com" %> 
    <%# link_to_unless current_page.first?, raw(t 'views.pagination.previous'), url, :rel => 'prev', :remote => remote %> 
</span> 

我只是註釋掉舊代碼,並使用了自定義鏈接。

+0

你不能。 ActionView助手不在範圍內。這是我嘗試的第一件事。不過謝謝。 –

+0

你可以包括他們 - 包括ActionView :: Helpers – Salil

+0

謝謝。認爲我應該回去學習Ruby; –

1

剛剛遇到同樣的問題。 我的解決方案:發生在分頁程序的範圍

= paginator.render do 
    %nav.pagination 
    = render :partial => 'custom links' 
    = @template.link_to "custom link", custom_path 

由於局部呈現,有可能使用它的實例變量,指向模板(見https://github.com/amatsuda/kaminari/blob/master/lib/kaminari/helpers/paginator.rb

小哈克,但工程。

+0

謝謝,我喜歡這個解決方案。 –