ruby-on-rails - 使用 init.rb Rails 3 创建 gem

标签 ruby-on-rails ruby gem init

我创建了一个新的 gem:https://github.com/tntwebsolutions/ts3query

在我的 init.rb 文件中,我需要 主 lib 文件,这应该会在加载 Rails 应用程序时自动加载 gem。但是当我启动服务器时,它发现 init.rb 文件没有加载。

在我的应用程序中,我的 Gemfile 中有这个:

gem "ts3query", "~> 0.2.1"

然后在我的 application_controller.rb 中执行此操作:

@query = TS3Query.connect :password => password

但是我得到了这个错误:

uninitialized constant ApplicationController::TS3Query

如果我这样做:

require 'TS3Query'
@query = TS3Query.connect :password => password

它确实有效。但我无法弄清楚,在加载 Rails 应用程序时,我必须在我的 gem 上更改什么才能加载 require 'TS3Query'

最佳答案

init.rb 不会在任何地方为任何人调用,将您的文件从 TS3Query.rb 重命名为 ts3query.rb 并且 bundler 将加载它自动为您服务。

避免使用包含大写和小写字符的名称,Linux 和某些 Mac 具有区分大小写的文件系统,虽然它适用于某些人,但可能不适用于其他所有人。

关于ruby-on-rails - 使用 init.rb Rails 3 创建 gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10618174/

相关文章:

mysql - 在 rails 上创建新的应用程序 ruby

ruby-on-rails - Rails损坏- bundle 不起作用-ovirt-engine-sdk-错误: Failed to build gem native extension. Cloud9 AWS

ruby-on-rails - 收集来自多模型查询的搜索结果

ruby-on-rails - Rails elasticsearch 映射被忽略

ruby-on-rails - 在 Ubuntu 上构建 Rails 应用程序时寻找 SVN 最佳实践

rubygems - bundle 更新 : env: ruby_executable_hooks: No such file or directory

ruby-on-rails - 如何避免在开发模式下提供预编译资源?

ruby-on-rails - 获取xml中某个节点的父节点-nokogiri-rails

ruby - 对 Ruby 长度属性感到困惑

使用 gem 通过 RVM 安装 Rails 时出现权限错误