错误:使用Pundit生成器时未初始化的常量WillPaginate :: ActionView(NameError)

时间:2014-04-08 01:28:27

标签: twitter-bootstrap cancan pundit

我的应用程序正在使用CanCan,但现在我想切换到Pundit。我将Pundit添加到Gemfile,删除CanCan,运行bundle然后,当我尝试运行生成器(rails g pundit:install)时,我收到错误:

...config/initializers/bootstrap_link_renderer.rb:1:in `<top (required)>': uninitialized constant WillPaginate::ActionView (NameError)

这是我的application_controller.rb文件:

class ApplicationController < ActionController::Base
  include Pundit

  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception

  before_filter :configure_permitted_parameters, if: :devise_controller?

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:account_update) << :avatar
  end

  def after_sign_in_path_for(resource)
    topics_path
  end
end

这是bootstrap链接渲染器:

class BootstrapLinkRenderer < WillPaginate::ActionView::LinkRenderer 
  def html_container(html)
    tag(:ul, html, container_attributes)
  end

  def page_number(page)
    tag :li, 
    link(page, page, rel: rel_value(page)), 
    class: ('active' if page == current_page)
  end

  def gap
    tag :li, 
    link(super, '#'), 
    class: 'disabled'
  end  

  def previous_or_next_page(page, text, classname)
    tag :li, link(text, page || '#')
  end

  def previous_page
    num = @collection.current_page > 1 && @collection.current_page - 1
    previous_or_next_page(num, '&laquo;', 'previous_page')
  end

  def next_page
    num = @collection.current_page < total_pages && @collection.current_page + 1
    previous_or_next_page(num, '&raquo;', 'next_page')
  end
end

1 个答案:

答案 0 :(得分:0)

暂时尝试删除config/initializers/bootstrap_link_renderer.rb以查看问题是否仍然存在。它可能与CanCan无关 - &gt;专家改变。