2013-04-11 11 views
22

Ruby 1.9.3にアップグレードした後、私のアプリケーションのどちらかが正常に動作していますが、変換しようとしている2番目のものは "assets:precompile" capistranoで展開してください。私は、多くの記事を読んで、いくつかの提案を試みたが、無駄にしているUS-ASCIIの無効なバイトシーケンスでレーキタスクが失敗する

rake aborted! 
    rake aborted! 
    invalid byte sequence in US-ASCII 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:16:in `block in trace_on' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `map' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `trace_on' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:328:in `trace' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:183:in `display_error_message' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:169:in `rescue in standard_exception_handling' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:159:in `standard_exception_handling' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:88:in `load_rakefile' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:72:in `block in run' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:70:in `run' 
    /Users/george/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval' 
    /Users/george/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>'  

: はここにスタックトレースです。 私は私のgemfileの先頭に次を追加してみました:

if RUBY_VERSION =~ /1.9/ 
    Encoding.default_external = Encoding::UTF_8 
    Encoding.default_internal = Encoding::UTF_8 
end 

しかし、それは何の違いが行われていません。

$ echo $LC_ALL 
en_NZ.UTF-8 

$ echo $LANG 
en_NZ.UTF-8 

を次のように私は私が本当にすべてのメッセージを理解し、私は問題を抱えているファイルを特定する方法を知ってはいけないいけない怖いLANGとLC_ALL環境変数をチェックします。

実行するレイクタスクを取得できません - 同じエラーが発生します。

開発モードでアプリケーションを完全に正常に実行できることに注意してください。

+0

プロジェクト内のファイルをランダムに検索した後。私は、エラーメッセージが問題のファイル名を指定していないため、おそらくレーキ自体と関係があると判断しました。データベースプライミングのためのハードコードされたデータを含むレーキタスクを削除することで、問題が解決されました。 – giorgio

答えて

30

は、あなたが(日本の)ローマ字で自分のファイルに入力していないことを確認してくださいあなたのRakefileの最初の行に

#encoding: utf-8 

を追加(またはに奇妙な文字が含まれているものは何でもファイル)

+1

しかし、どのファイルが見つかっていますか? – giorgio

+0

ありがとう、あなたfotanus!また@giorgioファイルは 'Rakefile'と呼ばれます – Trip

+2

問題ファイルはRakefileではありません。それは簡単だろう!それは問題があった私のレーキタスクの一つでした。 – giorgio

1

。または、他のUS-ASCII以外の言語の英語文字設定。

rake db:seedを実行しようとしましたが、同様のエラーが発生しました。私は、日本のローマ文字でシードファイルを入力していたことが分かります。私は自分のプロジェクトで作業する前にキーボード入力をUSに戻すのを忘れていました。

+0

どうやって修正しましたか? –

+1

@BrenoSalgado彼は、ファイルの先頭に正しいエンコーディングを追加するか、シードファイルから文字を削除した可能性が高いです。 – fotanus

+0

@BrenoSalgadoはい私は単に私がローマ字で入力した文字を削除し、米国の英語に戻ってそれを再入力しました。 – user2031423

5

フォールトのレイクファイルを一度に1つずつ削除することによってを追跡します。 のlib /タスク/ delete_me.rake

下のファイルすなわち

その後再レーキや、これまであなたの問題を与えた再起動してください。問題が消えたら git diffを実行して、どのファイルが犯人であるかを確認し、お気に入りのエディタでファイルのエンコーディングを変更します。

すなわち、

のvimのlib /タスク/ delete_me.rake :。その後、再レーキ

WQとあなたが戻ってサービスでなければなりません:ファイル・エンコーディング= UTF-8 を設定します。

1

私は同様の問題がありました。私の最初の名前は「エラー」でした。これはUS-ASCII以外の文字(ö)を含んでいます。これはsetup.rbに表示され、問題が発生しました。私はそれを "oe"に変更し、うまくいった。

私はそれをフォルダに移動して

$ magic_encoding 

準備を実行し

$ sudo gem install magic_encoding 

何とか

2

最初の実行を変更できるようにbitnamiにEメールをお送りします!

+0

Welp私はそれをして、それは仕事をしなかった.. –

+0

それは私の仕事です、ありがとう! – Vsevolod

0

rakeタスクを実行しようとしているときに同様のエラーが発生しました(私はRuby 1.9.3でRails 3.2を使用しています)。私は上記のすべてのソリューションを成功させずに試みました。後で私はエラーを引き起こしていた特定の宝石であることを知りました(私の場合、数日前に更新されたFakerの宝石でした)。私は宝石を削除しました(使用されていませんでした)、すべてが機能し始めました!だから私のアドバイスは、あなたがこの種の問題に遭遇し、ここにリストされている解決策がない場合は、各宝石のバージョンを確認し、それらのどれかが更新されているかどうかを確認してください。削除したり、互換性のあるバージョンを設定してください。

関連する問題