私は Hartl の Ruby on Rails チュートリアルに取り組んでおり、開発環境とテスト環境の操作方法の違いに関連する問題に遭遇しました。
簡単に言えば、2 つの環境は同期していません。開発環境は正常に動作しているように見えますが、行われている変更の一部がテスト環境に反映されていません。
たとえば、application.html.erb を編集すると、その変更がテスト環境に複製されます。ただし、_header.html.erb を変更しても変更されません。これが問題に気付いた方法です-ヘッダーへの新しいリンクの存在のテストが失敗していましたが、ブラウザーで(開発環境で)それらを見つめていました。
これを理解しようとしているときに気付いた別の癖があります: を使用してテスト環境でローカル サーバーを実行rails server --environment test
し、ブラウザーを起動すると、アプリケーションは「修正された」ままになります。つまり、アプリケーション コードや HTML/CSS ファイルに加えられた変更は、ブラウザーに複製されません。変更を確認するには、ローカル サーバーを閉じてから再度開く必要があります。次に、変更を表示可能な状態でテスト環境をロードします。
2 つの環境の db は同一です (チュートリアル全体で移行を実行rake db:migrate
して追加し、sqlite 3 ビューアーを介して db が同一であることを確認しました)。rake db:test:prepare
この問題は、私の Rails 環境に対する初歩的な誤解が原因であると思います。助けていただければ幸いです。
完全を期すために、この問題に最初に気付いたときは、第 8 章 (サインイン/サインアウト認証の追加) まで作業しています。