Wah*_*ver 7 gem initializer ruby-on-rails-3
我试图在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
Run Code Online (Sandbox Code Playgroud)
然后我试着像这样称呼它:
Credentials.time_stamp
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
uninitialized constant Twitter::Credentials
Run Code Online (Sandbox Code Playgroud)
问题是什么?
谢谢
Uni*_*key 10
您的gem首先需要在lib/generators/your_gem_name_generator.rb中定义一个生成器
mkdir -p lib/generators/
Run Code Online (Sandbox Code Playgroud)
使用类似名称复制该文件夹中的初始化程序 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
Run Code Online (Sandbox Code Playgroud)
您应该在这里查看创建生成器的官方文档:http: //guides.rubyonrails.org/generators.html
| 归档时间: |
|
| 查看次数: |
7064 次 |
| 最近记录: |