我有两个型号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”退出
答案 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