web-dev-qa-db-ja.com

Rails console:定数を自動ロードできません

ユーザーがお互いにフィードバックを残すことができる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アプリを介して適切に機能しないのはなぜですか?

22
dmt2989

命名規則が台無しになっているようです。

Rails命名規則に従って、ファイル名snake_caseおよびクラス名 in CamelCase。シナリオでは、ファイル名はcustomer_rating.rbおよびクラス名はCustomerRatingでなければなりません。

これらの変更を行った後、CustomerRating.all(更新されたクラス名はCustomerRatingであるため)すべての顧客評価を取得します。 使用しないCustomer_rating.all

41
Kirti Thorat

また、今後の参考のために見つけたこの問題のシナリオを追加したいと思います。

私はRails 4.0を実行していて、この同じ問題を抱えていましたが、Studentというフォルダーに含まれているstudent.rb内にStudentという名前のモデルがありました。最初はフォルダ名が問題でしたが、フォルダ名をモデル名以外に変更すると問題は解決しました。

7
Ryan Bartley