Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails应用程序中访问gem方法_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 在rails应用程序中访问gem方法

Ruby on rails 在rails应用程序中访问gem方法,ruby-on-rails,ruby,Ruby On Rails,Ruby,我创造了我自己的宝石。这是一个非常基本的宝石,只有一个'喜'的方法。在我的gem的lib目录中,我有一个'mygem.rb'文件,它具有上述方法 现在,我创建了一个简单的rails应用程序,尝试使用这种方法。 那么我应该如何使用它呢 我试着这样做:- 在我的应用程序/控制器中,我有一个名为hello_controller.rb的文件,看起来像这样 class HelloController < ApplicationController def index @me

我创造了我自己的宝石。这是一个非常基本的宝石,只有一个'喜'的方法。在我的gem的lib目录中,我有一个'mygem.rb'文件,它具有上述方法

现在,我创建了一个简单的rails应用程序,尝试使用这种方法。 那么我应该如何使用它呢

我试着这样做:-

在我的应用程序/控制器中,我有一个名为hello_controller.rb的文件,看起来像这样

class HelloController < ApplicationController

    def index
        @message= mygem.hi 
        @count=3
        @bonus="This message came from the controller."
    end
end
class HelloController
但在我的本地主机上,它给了我以下错误: HelloController#索引中的名称错误

未初始化的常量HelloController::mygem


请解决此错误。

您需要将gem添加到gem文件中

您可以使用以下内容:
gem'mygem',路径:'path/to/gem'

将gem代码封装在类或模块中也是一个好主意,因此应该:

lib/mygem.rb

class MyGem
  def self.hi
    'Hi there!'
  end
end

然后在控制器中将其称为
MyGem.hi

您需要将gem添加到gem文件中

您可以使用以下内容:
gem'mygem',路径:'path/to/gem'

将gem代码封装在类或模块中也是一个好主意,因此应该:

lib/mygem.rb

class MyGem
  def self.hi
    'Hi there!'
  end
end

然后在控制器中将其称为MyGem.hi

假设您正在使用bundler,那么:

创建宝石:

bundle gem my_gem
打造创业板:

gem build my_gem.gemspec
安装gem:

gem install my_gem-0.0.1.gem
将gem添加到rails应用程序的gem文件中

gem 'my_gem'
添加到gem包中

bundle

假设您正在使用bundler,则:

创建宝石:

bundle gem my_gem
打造创业板:

gem build my_gem.gemspec
安装gem:

gem install my_gem-0.0.1.gem
将gem添加到rails应用程序的gem文件中

gem 'my_gem'
添加到gem包中

bundle

我用这个gem和所需的路径更新了我的gem文件。正如您所指出的,我的gem代码完全存在于lib/mygem.rb中。但由于某些原因,它会给出此错误。您可能需要使用“mygem”。另外,首先尝试从irb开始工作。我尝试从irb开始工作,效果很好。我用这个gem和所需的路径更新了我的gem文件。正如您所指出的,我的gem代码完全存在于lib/mygem.rb中。但由于某些原因,它会给出此错误。您可能需要使用“mygem”。还有,首先我试着让它从irb开始工作,它工作得很好。是的,我和你说的一样。现在我正在尝试访问如下所示的方法:@message=mygem.hi,但它给了我错误。是的,我做了与您所说的相同的操作。现在我正在尝试访问如下所示的方法:@message=mygem.hi,但它给了我一个错误。