Rails相关模型以“NameError uninitialized constant”退出

时间:2014-10-28 07:21:54

标签: ruby-on-rails rails-activerecord

我有两个型号User and Leave

class User < ActiveRecord::Base
  has_many :leaves
  ...
end

class Leave < ActiveRecord::Base
  belongs_to :user

  #attr_accessible :user_id
  #default_scope -> { order('created_at DESC') }
  validates :user_id, presence: true
 end

哪些是基本模型用户有许多叶子和叶子属于用户。但是当我做的时候

@leaves = @user.leaves
在users_controller中的

我得到了这个奇怪的错误“未初始化的常量User :: Leafe”,但我无法找到拼写错误的地方“离开”。检查了所有迁移和shema.rb。在此代码之前,我正在调用@ leaves2 = Leave.all并且正在传递OK,但是当我执行“@ user.leaves”时,它在具有NameError的控制台上打破了“500 Internal Server Error”。是否可以进行错误捕获或类似的操作以查看错误来自何处。

同样在rails console中无法获取@ leaves = @ user.leaves,它以“NameError:uninitialized constant User :: Leafe”退出

2 个答案:

答案 0 :(得分:7)

活动记录看到叶子的奇异形式为叶子。您可以使用变形覆盖它

配置/初始化/是inflections.rb

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'leave', 'leaves'
end

答案 1 :(得分:0)

一个小注释可以修改Santhosh的答案。必须包含语言修饰符(:en)...

ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.irregular 'leave', 'leaves'
end