我正在学习如何使用类,模块和命名空间。我自己做了一些游乐场的东西,并创建了一个具有一定权限的用户。
class User
include Permissions
end
u = User.new.set_permissions
module Permissions
def set_permissions
p 'Settings permissions'
end
end
我在运行此User.rb
文件时遇到此错误。
未初始化的常量User :: Permissions(NameError)
为什么会这样?我尝试了include
和require
,但看到了同样的错误。它们是同一文件夹中的两个serpeate文件。没有像lib
这样的子文件夹或此目录中的任何内容。
答案 0 :(得分:0)
您需要user.rb
:
require_relative 'permissions'
这将从permissions.rb
加载代码,以便在您致电include Permissions
时,已定义Permissions
模块。
答案 1 :(得分:0)
在特定情况下你可以做的是,
require './permission'
class User
include Permission
def permit
set_permission
end
end
然后您可以轻松地在新创建的permit
实例上调用User
。
User.new.permit
这将让您实现加载并运行模块功能。