我正在尝试在 Rails 3 中构建一个 gem,并在其中尝试传递一个初始化程序:
Credentials.configure do |config|
file = File.read("#{Rails.root}/config/twitter.yaml")
file_config = YAML.load(file)
config.consumer_key = file_config[Rails.env][:consumer_key]
config.consumer_secret = file_config[Rails.env][:consumer_secret]
config.callback_url = URI.escape(file_config[Rails.env][:callback_url])
config.time_stamp = Time.now.to_i
end
然后我尝试这样称呼它:
Credentials.time_stamp
但我收到此错误:
uninitialized constant Twitter::Credentials
问题是什么?
Thanks
你的 gem 首先需要在 lib/generators/your_gem_name_generator.rb 中定义一个生成器
mkdir -p lib/generators/
将初始化程序复制到该文件夹中,名称如下twitter_credentials.rb
然后在该文件夹中创建另一个文件,其名称类似于twitter_generator.rb
内容如下:
class YourGemNameRailtie < Rails::Generators::Base
source_root(File.expand_path(File.dirname(__FILE__)))
def copy_initializer
copy_file 'twitter_credentials.rb', 'config/initializers/twitter_credentials.rb'
end
end
您应该在此处查看有关创建生成器的官方文档:http://guides.rubyonrails.org/generators.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)