我的应用程序正在使用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, '«', 'previous_page')
end
def next_page
num = @collection.current_page < total_pages && @collection.current_page + 1
previous_or_next_page(num, '»', 'next_page')
end
end
答案 0 :(得分:0)
暂时尝试删除config/initializers/bootstrap_link_renderer.rb
以查看问题是否仍然存在。它可能与CanCan无关 - &gt;专家改变。