Quy ước Rails là một bộ điều khiển xử lý một mô hình, cho dù một hay nhiều phiên bản của mô hình đó có thể tồn tại trong thời gian chạy hay không. Tuy nhiên, bạn có thể có một ứng dụng Rails trong đó (một số) bộ điều khiển (và các khung nhìn được liên kết) không được liên kết với bất kỳ mô hình cụ thể nào, mà là xử lý một bộ chức năng phức tạp hơn. Trong trường hợp này, tính năng đa nguyên tự động không có ý nghĩa gì.
Ứng dụng Rails mà tôi hiện đang làm việc phù hợp với thể loại này và tôi chỉ đơn giản là khiến tôi khó chịu khi Rails mong đợi rằng các từ định danh mà tôi xác định là số ít ở một nơi sau đó được sử dụng ở dạng số nhiều của chúng ở những nơi khác. Ví dụ: tôi có thể muốn định nghĩa một cái gì đó như thế này trong config/routes.rb
:
resource :dashboard, :only => [:show]
và sau đó tôi muốn một bộ điều khiển DashboardController
hiển thị thông tin tóm tắt về các khía cạnh nhất định của ứng dụng, thu thập thông tin từ nhiều hơn một bảng cơ sở dữ liệu. Vì vậy, ở đây, Dashboard
không đề cập đến bất kỳ mô hình nào của ứng dụng và sẽ rất lạ nếu có tên của bộ điều khiển DashboardsController
.
Tôi đã tìm thấy một giải pháp tốt cho sự khó chịu của quá trình đa năng tự động trong câu trả lời này . Nói tóm lại, hãy chỉnh sửa tệp config/initializers/inflections.rb
và thêm các từ bạn không muốn để được tự động đa nguyên hóa vào định nghĩa này:
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable %w( dashboard foo bar baz )
end