Bootstrap 错误:将生成器与Pundit一起使用时,常量WillPaginate::ActionView(NameError)未初始化

0md85ypi  于 2023-02-01  发布在  Bootstrap
关注(0)|答案(2)|浏览(175)

我的应用使用的是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, '&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
8ehkhllq

8ehkhllq1#

现在试着删除config/initializers/bootstrap_link_renderer.rb,看看问题是否仍然存在。这可能与CanCan -〉Pundit更改无关。

axr492tv

axr492tv2#

如果您想保留该文件,可以尝试将以下两行添加到顶部

require 'will_paginate/view_helpers/link_renderer'
require 'will_paginate/view_helpers/action_view'

它可能只是无法自动找到它们。

相关问题