未初始化的常量User :: Permissions(NameError)

时间:2018-02-23 21:55:20

标签: ruby

我正在学习如何使用类,模块和命名空间。我自己做了一些游乐场的东西,并创建了一个具有一定权限的用户。

User.rb

class User
  include Permissions
end

u = User.new.set_permissions

Permissions.rb

module Permissions
  def set_permissions
    p 'Settings permissions'
  end
end

我在运行此User.rb文件时遇到此错误。

  

未初始化的常量User :: Permissions(NameError)

为什么会这样?我尝试了includerequire,但看到了同样的错误。它们是同一文件夹中的两个serpeate文件。没有像lib这样的子文件夹或此目录中的任何内容。

2 个答案:

答案 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

这将让您实现加载并运行模块功能。