2014-03-31 34 views
16

我有一个Customer_ratings模型,允许用户彼此留下反馈。网络应用程序运行正常,收集,存储和显示反馈。Rails控制台:无法自动加载常量

我想进去和删除通过Rails控制台的一些反馈,但是当我进入Customer_rating.all,我得到以下错误:

同样,如果我进入Customer_rating [0],我得到:

RuntimeError: Circular dependency detected while autoloading constant Customer_rating 

我通过控制台访问其他表时没有此问题。

什么可能导致问题,为什么这个错误不会阻止Customer_ratings通过Web应用程序正常工作?

+0

我看到两个问题在这里。让我们在聊天讨论这个http://chat.stackoverflow.com/rooms/48530/ror –

+0

仅供参考所有常量需要[CamelCase](http://en.wikipedia.org/wiki/CamelCase) - 你应该是叫'CustomerRating' –

回答

35

这似乎是一个混乱的命名约定的情况。

Rails命名约定,文件名应在snake_case类名CamelCase。在你的场景中,文件名应该是customer_rating.rb,类名应该是CustomerRating

做出这些更改后,使用CustomerRating.all(因为更新的类名是CustomerRating)可以获取所有客户评级。 请勿使用Customer_rating.all

+1

CustomerRating.all vs Cutomer_rating.all是问题。谢谢! – dmt2989

+0

很高兴帮助:) –

+0

“活得长久,繁荣” –

6

我还想添加一个我发现的问题的场景供将来参考。

我正在运行Rails 4.0,但我遇到了同样的问题,但是发生了什么事情,我在Student.rb中有一个名为Student的模型,它包含在名为Student的文件夹中。起初我没有意识到,但文件夹名称是问题所在。将文件夹名称更改为除模型名称以外的其他名称解决了问题。

+0

谢谢你,亲切的先生! – doug

-1

你只需要修改模块

例如名称,如果该链接是http://sairam.esy.es/users/customer_rating然后 你控制器应等

Module Users 
Class RatingController 
... 
.. 
def customer_rating 
.. 
.. 
end 
end 

+0

这不是Ruby语法 – Houen

相关问题