Ruby on rails 与Rails相关的模型以“退出”;NameError uninitialized constant";
我有两个模型,用户和离开Ruby on rails 与Rails相关的模型以“退出”;NameError uninitialized constant";,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,我有两个模型,用户和离开 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
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
在users\u controller中,我遇到了一个奇怪的错误“uninitialized constant User::leave”,但我找不到拼写错误“leave”的地方。已检查所有迁移和shema.rb。在此代码之前,我调用@leaves2=Leave.all,这是通过OK,但当我执行“@user.leaves”时,它会在控制台上以“500内部服务器错误”和NameError中断。是否可以执行错误捕获或类似的操作,以查看此错误的确切来源
同样在rails控制台中,无法获取@leaves=@user.leaves,它以“NameError:uninitialized constant user::leave”退出。活动记录将单数形式的叶子视为叶子。您可以使用屈折来覆盖它 config/initializers/endocations.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'leave', 'leaves'
end
修改桑托什回答的一个小注释。必须包含语言修饰符(:en)
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'leave', 'leaves'
end
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'leave', 'leaves'
end