5

Tôi muốn trưng ra một chức năng toàn cầu cho tất cả các khía cạnh của dự án Ruby on Rails (mô hình, khung nhìn và bộ điều khiển). Ban đầu, tôi nghĩ rằng tôi chỉ có thể thêm:Rails - Chức năng toàn cầu phổ quát

def self.my_function 
    # Code here... 
end 

để /config/application.rb và sau đó chỉ cần gọi:

Application::my_function 

bất cứ nơi nào trong ứng dụng của tôi. Nhưng điều đó không hiệu quả. Vì vậy, tôi đã làm một số googling và dường như tôi có thể tiếp xúc với các chức năng toàn cầu:

  • Đối với các bộ điều khiển của tôi trong /app/controllers/application_controller.rb
  • Đối với quan điểm của tôi trong /app/helpers/application_helper.rb
  • Đối với các kiểu máy của tôi trong/lib/

Nhưng không phải cho tất cả các mô hình cùng một lúc.

Ai đó có thể cho tôi biết nếu tôi muốn gì không?

Tôi cũng muốn tránh mọi tuyên bố bao gồm càng nhiều càng tốt vì điều này lý tưởng là có thể truy cập được từ mọi nơi. Nhưng tại thời điểm này, thậm chí sử dụng các câu lệnh include sẽ là OK nếu tôi có thể định nghĩa logic cho hàm này ở một vị trí trung tâm.

Trả lời

10

định nghĩa nó trong config/environment.rb, trước khi ứng dụng được khởi tạo với:

<YourApp>::Application.initialize! 
+0

Cảm ơn! Đó là giải pháp! Thẳng và đơn giản! – BlazeCell

Các vấn đề liên quan