3

Rails プロジェクトを からruby-1.9.3-p392にアップグレードしましたruby-2.0.0-p0。ローカルではすべて正常に動作しますが、heroku のステージング サーバーにプッシュすると、. friendly_id宝石が壊れる

nil is not a symbol

vendor/bundle/ruby/2.0.0/gems/friendly_id-4.0.9/lib/friendly_id/slug_generator.rb:56:in `conflicts'

どうやら User モデルには primary_key クラス属性がありません

User.primary_key
> nil  

「id」を返し、ruby 2.0 のローカル開発環境と 1.9.3 の運用環境で正しく動作するはずです。

レールバージョンは3.2.13

これは以前に誰かに起こったことがありますか?何が原因なのかわからない。データベースを新しく復元しても解決しないようです。

4

1 に答える 1

0

コメント者の意見は正しく、Ruby 2.0 は本当におせっかいでした。

どういうわけか、ステージング スキーマが台無しになり、実行するheroku pg_backups:restoreだけでは修正できませんでした。これは、データのみを復元するためです。

その後heroku pg:resetに別の復元を実行すると、最終的に修正されました。

于 2013-07-02T18:26:04.870 に答える