0

Railsでジェネレーターを作成する際に問題が発生しています。これは私が得ているエラーです。プロバイダー Twilio を介して SMS 検証を行うジェネレーターを作成しようとしています。

require "sms_auth-twilio"
NameError: uninitialized constant Twilio::Rails
from /Users/sherodtaylor/.rvm/gems/ruby-1.9.3-p125/gems/sms_auth-twilio-0.0.2/lib/sms_auth-twilio.rb:3:in `<module:Twilio>'
from /Users/sherodtaylor/.rvm/gems/ruby-1.9.3-p125/gems/sms_auth-twilio-0.0.2/lib/sms_auth-twilio.rb:2:in `<top (required)>'
from /Users/sherodtaylor/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
from /Users/sherodtaylor/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
from /Users/sherodtaylor/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
from (irb):1
from /Users/sherodtaylor/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in `<main>'

これは私のコードです

 require "sms_auth-twilio/version"
   module Twilio
     class TwilioGenerator < Rails::Generator::Base
     source_root File.expand_path("../generator", __FILE__)
     def add_twilio_initializer
       copy_file "twilio.rb", "config/initializer/twilio.rb"
     end
     # config info for the API
     def twilio_config_info
       copy_file "twilio.yml", "config/twilio.yml"
     end
     # Verification Controller to verify the company
     def copy_verifications 
       copy_file "verifications_controller", "app/contoller/verifications_controller.rb"
     end
   end
 end
4

2 に答える 2

0

確かなことは言えませんが、gem 内で作成されたジェネレーターは通常、このようには見えません。gem_name.rb通常、それらは実際のファイルとは別のものです。ジェネレーターロジックをより一般的なものに移動すると、lib/generators/generator_name/generator_name.rb運が良くなると思います。そして、コピーするファイルをサブディレクトリ内に配置できます../generator_name/templates/

また、末尾に .rb を追加する必要があることに注意してくださいcopy_file "verifications_controller,"

テンプレートを機能させるには、私がここに書いたジェネレーターを利用する単純な gem のレイアウトに従うことができます。

于 2012-12-01T21:58:51.403 に答える
0

Railsサーバーを再起動してから試してください

ヘルプについては、次のリンクを参照してください: RailsAdding Twilio Sub Accounts: Uninitialized constant User::Twilio

于 2012-12-01T06:09:07.793 に答える