使用Rails Inflections和`rails generate`

我正在尝试生成一个名为ClassAttendance的模型,但Rails一直在命名迁移class_attendances 。 我已经尝试通过将以下代码放在\config\initializers\inflections.rb纠正此问题:

 ActiveSupport::Inflector.inflections do |inflect| inflect.uncountable "attendance" end 

这似乎在rails控制台中工作正常:

 $ rails console Loading development environment (Rails 3.2.6) irb(main):001:0> "attendance".pluralize => "attendance" 

不幸的是,rails模型生成器似乎不受影响:

 $ rails generate model ClassAttendance invoke active_record create db/migrate/20120806201910_create_class_attendances.rb create app/models/class_attendance.rb invoke rspec create spec/models/class_attendance_spec.rb 

它与此有关吗?

 irb(main):002:0> "class_attendance".pluralize => "class_attendances" 

还是有其他一些我没看到的问题?

这是解决方法,您需要将它放在config/initializers/中的inflections.rb文件中。 所以你的config/initializers/inflections.rb会是

 ActiveSupport :: Inflector.inflections执行| inflect | 
   inflect.uncountable%w(出勤class_attendance ClassAttendance) 
结束