Ini adalah konvensi Rails bahwa satu pengontrol menangani satu model, apakah satu atau beberapa contoh model itu dapat ada selama runtime. Namun, Anda dapat memiliki aplikasi Rails di mana (beberapa) pengontrol (dan tampilan terkait) tidak terkait dengan model tertentu, melainkan menangani sekumpulan fungsionalitas yang lebih kompleks. Dalam kasus ini, pluralisasi otomatis tidak masuk akal.
Aplikasi Rails yang sedang saya kerjakan cocok dengan kategori ini, dan ini hanya mengganggu saya karena Rails mengharapkan bahwa pengidentifikasi yang saya definisikan sebagai satu tempat di satu tempat kemudian digunakan dalam bentuk jamak di tempat lain. Misalnya, saya mungkin ingin mendefinisikan sesuatu seperti ini di config/routes.rb
:
resource :dashboard, :only => [:show]
dan kemudian saya ingin pengontrol DashboardController
menampilkan informasi ringkasan tentang aspek tertentu dari aplikasi, mengumpulkan informasi dari lebih dari satu tabel database. Jadi di sini, Dashboard
tidak mengacu pada model aplikasi apa pun, dan akan sangat aneh memiliki nama pengontrolnya DashboardsController
.
Saya menemukan solusi yang baik untuk gangguan pluralisasi otomatis dalam jawaban ini . Singkatnya, edit file config/initializers/inflections.rb
dan tambahkan kata yang tidak Anda inginkan menjadi jamak secara otomatis ke definisi ini:
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable %w( dashboard foo bar baz )
end