使用Rails Inflections和`rails generate`

时间:2012-08-06 20:26:34

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我正在尝试生成一个名为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"

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

1 个答案:

答案 0 :(得分:2)

这是解决方法,您需要将其放在inflections.rb的{​​{1}}文件中。所以你的config/initializers/将是

ActiveSupport::Inflector.inflections do |inflect| 
  inflect.uncountable %w( attendance class_attendance ClassAttendance) 
end