在Rails 5

时间:2018-03-09 03:03:44

标签: ruby-on-rails

我正在尝试为我的应用程序中的用户创建权限结构。我在rails应用程序的permissions.rb目录中创建了一个lib/文件。

当我在include Permissions模型中尝试user时,我收到此错误。

enter image description here

这就是我在user模型中所拥有的。

class User < ApplicationRecord
  include Permissions

  ...

end

如何在不收到此错误的情况下包含此文件及其方法?

2 个答案:

答案 0 :(得分:1)

要在lib文件夹下包含模块,您需要在application.rb中的autoload_path中添加lib文件夹

config.autoload_paths += %W( #{config.root}/lib/)

在application.rb。

中添加此行

答案 1 :(得分:0)

我认为如果您在应用程序启动时使用自动加载文件会很好,那么它会在application.rb

config.autoload_paths << Rails.root.join('lib')

或者您可以使用user.rb

class User < ApplicationRecord
   load File.join(Rails.root, 'lib', 'permissions.rb')
end

该模块看起来像这样,总是确保命名约定是正确的,如果在控制台上使用underscore运行模块名称然后他会给出您的文件名,如果您的模块名称为{{,请参阅下面的代码1}}然后

Permissions

您的文件名为Loading development environment (Rails 5.1.4) 2.3.4 :001 > "Permissions".underscore => "permissions"

permissions.rb

希望有所帮助