Tôi mới bắt đầu với ứng dụng web Ruby on Rails đầu tiên của mình. Tôi đã có một loạt các mô hình, khung nhìn, bộ điều khiển khác nhau, v.v.
Tôi muốn tìm một nơi tốt để gắn các định nghĩa về các hằng số thực sự toàn cầu, áp dụng trên toàn bộ ứng dụng của tôi. Cụ thể, họ áp dụng cả trong logic của các mô hình của tôi và trong các quyết định đưa ra theo quan điểm của tôi. Tôi không thể tìm thấy bất kỳ vị trí DRY nào để đặt các định nghĩa này khi chúng có sẵn cho tất cả các mô hình của tôi và trong tất cả các chế độ xem của tôi.
Để lấy một ví dụ cụ thể, tôi muốn một hằng số COLOURS = ['white', 'blue', 'black', 'red', 'green']
. Điều này được sử dụng ở mọi nơi, trong cả mô hình và quan điểm. Tôi có thể định nghĩa nó ở đâu tại một nơi để có thể truy cập được?
Những gì tôi đã thử:
- Các biến lớp không đổi trong tệp model.rb mà chúng được liên kết nhiều nhất, chẳng hạn như
@@COLOURS = [...]
. Nhưng tôi không thể tìm ra một cách lành mạnh để định nghĩa nó để tôi có thể viết theo quan điểm của mìnhCard.COLOURS
chứ không phải là một cái gì đó không phù hợpCard.first.COLOURS
. - Một phương pháp trên mô hình, một cái gì đó giống như
def colours ['white',...] end
- cùng một vấn đề. - Một phương thức trong application_helper.rb - đây là những gì tôi đang làm cho đến nay, nhưng những người trợ giúp chỉ có thể truy cập được trong các khung nhìn, không phải trong các mô hình
- Tôi nghĩ rằng tôi có thể đã thử một cái gì đó trong application.rb hoặc môi trường.rb, nhưng những thứ đó không thực sự đúng (và dường như chúng cũng không hoạt động)
Có cách nào để xác định bất cứ điều gì có thể truy cập cả từ mô hình và từ chế độ xem không? Ý tôi là, tôi biết các mô hình và khung nhìn nên tách biệt, nhưng chắc chắn trong một số lĩnh vực sẽ có lúc chúng cần tham khảo cùng một kiến thức cụ thể về tên miền?