2010-11-24 20 views
0

私はスクリプトでactiveSupportの空白メソッドを使用し、 "未定義のメソッド 'を空白にしますか? "blah"の場合:String(NoMethodError) " Rubyはrequireステートメントに問題はありませんが、ライブラリを使用することはできません。require文が動作していてもgemライブラリを使用できません

require "rubygems" 
require "active_support" 

if "blah".blank? 
    puts "blank!" 
end 

答えて

2

どのActiveSupportのバージョンを使用していますか?現在のバージョンでは、デフォルトではすべての単一の機能をネームスペースにロードしません。代わりに、必要な機能を厳選して選択することができます。あなたのケースでは:

require 'rubygems' 
require 'active_support/core_ext/object/blank' 

puts 'blank!' if 'blah'.blank? 

あなたがすべてをしたい場合は、

require 'active_support/all' 

を使用し、実際、ルビーの最近のバージョンでは、あなたにもrequire 'rubygems'を取り除くことができます。古いバージョンであっても、コードのすべてのユーザーがRubyGemを使用する必要があり、RubyGemsが利用できない環境では使用できなくなるため、そこに置くべきではありません。

+0

それは本当にそれを修正しました!私が仕事に出ようとしていた宝石には、特定のバージョンのactivesupportが指定されていませんでした。 – user518175

0

ええと、これを試したところ、うまくいきました(何も印刷しませんでした)。

関連する問題