我的应用使用的是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
下面是引导链接渲染器:
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
2条答案
按热度按时间8ehkhllq1#
现在试着删除
config/initializers/bootstrap_link_renderer.rb
,看看问题是否仍然存在。这可能与CanCan -〉Pundit更改无关。axr492tv2#
如果您想保留该文件,可以尝试将以下两行添加到顶部
它可能只是无法自动找到它们。