ユーザーがお互いにフィードバックを残すことができるCustomer_ratingsモデルがあります。 Webアプリは正常に動作しており、フィードバックが収集、保存、表示されます。
Railsコンソールからフィードバックを削除しましたが、Customer_rating.all
、次のエラーが表示されます。
LoadError: Unable to autoload constant Customer_rating, expected /Users/myapps/app/models/customer_rating.rb to define it
同様に、Customer_rating [0]を入力すると、次の結果が得られます。
RuntimeError: Circular dependency detected while autoloading constant Customer_rating
コンソールから他のテーブルにアクセスしている間、この問題は発生しません。
この問題の原因は何ですか?また、このエラーが原因でCustomer_ratingsがWebアプリを介して適切に機能しないのはなぜですか?
命名規則が台無しになっているようです。
Rails
命名規則に従って、ファイル名はsnake_case
およびクラス名 in CamelCase
。シナリオでは、ファイル名はcustomer_rating.rb
およびクラス名はCustomerRating
でなければなりません。
これらの変更を行った後、CustomerRating.all
(更新されたクラス名はCustomerRating
であるため)すべての顧客評価を取得します。 使用しないCustomer_rating.all
。
また、今後の参考のために見つけたこの問題のシナリオを追加したいと思います。
私はRails 4.0を実行していて、この同じ問題を抱えていましたが、Studentというフォルダーに含まれているstudent.rb内にStudentという名前のモデルがありました。最初はフォルダ名が問題でしたが、フォルダ名をモデル名以外に変更すると問題は解決しました。