2017-11-15 9 views
2

は、だから今ActionPackモジュールは、他のどのようなモジュールやクラス(場合、コンソールで利用可能で、私たちはrequire 'rails'require 'rails'宝石が必要な場合は、どのようなものにアクセスできますか?

irb(main):005:0> require 'rails' 
true 
irb(main):007:0> Rails.constants 
[:Railtie, :Rack, :Initializable, :Configuration, :WelcomeController, :InfoController, :VERSION, :Paths, :Info, :MailersController, :Application, :Engine] 

irb(main):009:0> ActionPack.methods-Object.methods 
[:gem_version, :version, :initialize_copy] 

irb(main):001:0> Rails 
NameError: uninitialized constant Rails 

irb(main):002:0> ActionPack 
NameError: uninitialized constant ActionPack 

前の例

ためのRailsの宝石を見てみましょうany)が利用可能で、それらのモジュールについて知る方法は?

答えて

3

宝石の開発者までです。あなたのNameとObjectspaceがどのように変わったのかを知るには、多くの巧妙な方法が必要です。

は私が見つけるためにどのようにすぐに答えた新しいモジュール(-Constants)があります。

initial_modules = Module.constants 
    # -> [:Object, :Module, :Class, :BasicObject, :Kernel, :NilClass, ...] 

    require 'rails' 

    Module.constants - initial_modules # all NEW constants 
    # -> [:Pathname, :OpenSSL, :Digest, :SecureRandom, :Concurrent, :I18n, :CGI, :ActiveSupport, :Set, :SortedSet, :Timeout, :TimeoutError, :Logger, :LoggerSilence, :DateAndTime, :Psych, :StringScanner, :ScanError, :Date, :DateTime, :YAML, :Base64, :TSort, :Rails, :BigDecimal, :BigMath, :TZInfo, :ThreadSafe, :Threadsafe, :SynchronizedDelegator, :JSON, :OpenStruct, :Singleton, :Mutex_m, :ActionPack, :Rack, :ActionDispatch, :Mime] 

見ての通り、これも必要(ただし、提供されていない)されて新しいものの多くが付属していますによってRails(Date、OpenSSLなど) 実際には、実行時にも要件が発生する可能性があります。そのため、コードを使用するときにこのリストが大きくなります。 少し助けてくれることを願っています。

関連する問題