2011-04-20 96 views

回答

17

您是否需要一個「更多」按鈕?如何創建這樣的幫手?

# usage: 
# link_to_next_page(@items) 
# link_to_next_page(@items, :remote => true) # Ajax 
def link_to_next_page(scope, name, options = {}, &block) 
    param_name = options.delete(:param_name) || Kaminari.config.param_name 
    link_to_unless scope.last_page?, name, {param_name => (scope.current_page + 1)}, options.merge(:rel => 'next') do 
    block.call if block 
    end 
end 

如果您覺得它有用,我已經準備好將這種輔助方法包含到寶石中,所以請讓我知道您的想法。謝謝!

+0

太好了,太棒了!確實將它包含在寶石中會很有用。它將涵蓋一個非常有吸引力和越來越常見的分頁:)謝謝! – invaino 2011-05-05 07:56:18

+0

嗨我碰到這個,因爲我試圖自己創建一個「更多」按鈕。我真的是新的jQuery,似乎無法得到任何進展。你能解釋一下這個輔助方法如何與jQuery聯繫起來,使「更多」按鈕? – 2011-05-21 04:49:54

+0

更多的按鈕是偉大的,但讓以前的項目保持下一個項目應低於以前的項目..我會更好 – Uchenna 2011-07-24 22:45:08

1

請注意,link_to_next_page(@items, :remote => true)將無法​​正常使用。由於無法在Ajax請求之後確定當前頁面,因此在獲取新項目後需要替換該鏈接。使用非侵入式JavaScript,這將事情是這樣的:

# app/views/items/index.js.erb 
$(".items").append("<%= escape_javascript(render(@items)) %>"); 
$(".more_link").replaceWith("<%= escape_javascript(
    link_to_next_page @items, 'View more', 
         :remote => true, 
         :id  => :view_more) %>"); 

如果這沒有意義,看看在Unobtrusive Javascript screencast在Railscasts。