變量I已經爲will_paginate自定義鏈路渲染器和放置了代碼在LIB/my_link_renderer.rb未初始化恆定的第二時間,但不是第一次訪問對生產
require 'will_paginate/view_helpers/link_renderer'
require 'will_paginate/view_helpers/action_view'
class MyLinkRenderer < WillPaginate::ActionView::LinkRenderer
include ListsHelper
def to_html
html = pagination.map do |item|
item.is_a?(Fixnum) ?
page_number(item) :
send(item)
end.join(@options[:link_separator])
html << @options[:extra_html] if @options[:extra_html]
@options[:container] ? html_container(html) : html
end
end
然後我用它像這樣:
<%= will_paginate @stuff,
:previous_label=>'<input class="btn" type="button" value="Previous"/>',
:next_label=>'<input class="btn" type="button" value="Next" />',
:extra_html=>a_helper,
:renderer => 'WillPaginate::ActionView::MyLinkRenderer'
%>
它工作第一次,但第二次我得到一個未初始化的常量WillPaginate :: ::的ActionView錯誤MyLinkRenderer。我相信我正在從我的應用程序中加載文件到我的應用程序正確在我的配置/ application.rb:
# Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/extras)
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]
我在控制檯中得到同樣的問題。
system :001 > WillPaginate::ActionView::MyLinkRenderer
=> MyLinkRenderer
system :002 > WillPaginate::ActionView::MyLinkRenderer
NameError: uninitialized constant WillPaginate::ActionView::MyLinkRenderer
懷疑這與軌道自動加載的事情有關。我應該不使用自動加載?我應該明確要求'./lib/my_link_renderer'嗎?
我應該注意到這隻發生在我的生產服務器上。
哦,我明白了!非常感謝! – freedrull
感謝您的解釋鏈接,我想知道... ... – freedrull