我正在尝试为我的应用程序中的用户创建权限结构。我在rails应用程序的permissions.rb
目录中创建了一个lib/
文件。
当我在include Permissions
模型中尝试user
时,我收到此错误。
这就是我在user
模型中所拥有的。
class User < ApplicationRecord
include Permissions
...
end
如何在不收到此错误的情况下包含此文件及其方法?
答案 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
希望有所帮助