เป็นแบบแผนของ Rails ที่คอนโทรลเลอร์หนึ่งตัวจัดการกับโมเดลเดียวไม่ว่าจะมีอินสแตนซ์ของโมเดลนั้นอย่างน้อยหนึ่งอินสแตนซ์ระหว่างรันไทม์ อย่างไรก็ตามคุณสามารถมีแอปพลิเคชัน Rails โดยที่ (บางส่วน) ตัวควบคุม (และมุมมองที่เกี่ยวข้อง) ไม่ได้เชื่อมโยงกับรุ่นใดรุ่นหนึ่ง แต่จะจัดการชุดฟังก์ชันที่ซับซ้อนมากขึ้น ในกรณีนี้การพหูพจน์อัตโนมัติไม่สมเหตุสมผล
แอปพลิเคชั่น Rails ที่ฉันกำลังทำงานอยู่นั้นเข้ากับหมวดหมู่นี้และมันเป็นเพียงการสร้างความรำคาญให้กับฉันที่ Rails คาดว่าตัวระบุที่ฉันกำหนดเป็นเอกพจน์ในที่เดียวจะถูกใช้ในรูปพหูพจน์ในที่อื่น ๆ ตัวอย่างเช่นฉันอาจต้องการกำหนดสิ่งนี้ในconfig/routes.rb
:
resource :dashboard, :only => [:show]
จากนั้นฉันต้องการให้คอนโทรลเลอร์DashboardController
แสดงข้อมูลสรุปเกี่ยวกับลักษณะบางอย่างของแอปพลิเคชันโดยรวบรวมข้อมูลจากตารางฐานข้อมูลมากกว่าหนึ่งตาราง ดังนั้นที่นี่Dashboard
ไม่ได้หมายถึงรูปแบบของแอพลิเคชันใด ๆ และมันจะแปลก ๆ DashboardsController
เพียงแค่มีการควบคุมที่เป็นชื่อ
ฉันพบวิธีแก้ปัญหาที่ดีสำหรับการระคายเคืองของพหูพจน์อัตโนมัติในคำตอบนี้ ในระยะสั้นแก้ไขไฟล์config/initializers/inflections.rb
และเพิ่มคำที่คุณไม่ต้องการให้เป็นพหูพจน์โดยอัตโนมัติในคำจำกัดความนี้:
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable %w( dashboard foo bar baz )
end