2011-12-25 10 views
4

レール3.1.1のアプリケーションをレール3.1.3にアップグレードしましたが、今はすべての要求でwrong number of arguments (3 for 1)にしか応答しません。残念ながら、どこにエラーがあり、アプリケーショントレースが空であるかはわかりません。私はいくつかの互換性の問題があると思うが、私は本当にどこを掘るか分からない。任意の助けhttps://gist.github.com/1519479レールを3.1.1から3.1.3にアップグレードした後に引数の数が3になりました

ありがとう:

は私のGemfileとフレームワークのトレースがあります。

+0

あなたのアプリで使用されているミドルウェアの1つは、1つの引数しか受け入れられませんが、何らかの理由でそれらのツリーで呼び出されます。残念ながら、stacktraceのもう一つの行は、 '間違った引数の数'と 'rack(1.3.5)lib/rack/builder.rbの間にあるはずです:78: 'new'では見つけるのが難しいでしょう問題。 –

+0

アップグレード前とアップグレード後のすべてのGemバージョンが含まれているGemfile.lockの違いを確認できれば、はるかに簡単になります。 – prusswan

+2

'bundle show 'を実行し、' omniauth' gemのバージョンを確認します。あなたは 'omniauth'を更新したレールをアップグレードしているかもしれません。バージョン1. *はtwitter認証のために別々のgem 'omniauth-twitter'を必要とします。あなたが 'Gemfile'にそれを持っていないので、同様のエラーを引き起こす' twitter'の宝石からミドルウェア 'Twitter'クラスとしてロードしようとします。 –

答えて

6

bundle showを実行し、omniauth gemのバージョンを確認してください。 omniauthも更新したレールをアップグレードしている可能性があります。

バージョン1.*omniauthには、twitter認証用に別の宝物omniauth-twitterが必要です。 Gemfileにそれを持っていないので、同様のエラーの原因となるtwitter宝石からミドルウェアTwitterクラスとしてロードしようとします。

今後のような問題を避けるには、">= 0.2.6"の代わりに"~> 0.2.6"を宝石のバージョン管理に使用することを検討してください。それはあなたが使用している予期しないメジャーリリースの宝石からあなたを守ります。

関連する問題