2

という名前のモデルを生成しようとしてClassAttendanceいますが、Rails はマイグレーションに名前を付け続けますclass_attendances。次のコードを次のコードに配置して、この問題を修正しようとしました\config\initializers\inflections.rb

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

これはレールコンソールでうまくいくようです:

$ 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"

それとも、私が見ていない他の問題がありますか?

4

1 に答える 1

2

inflections.rbこれが回避策です。ファイルに配置する必要がありますconfig/initializers/。だからあなたconfig/initializers/inflections.rb

ActiveSupport::Inflector.inflectionsは|inflect|を実行します
  inflect.uncountable%w(出席class_attendance ClassAttendance)
終わり
于 2012-08-06T20:52:45.200 に答える