Tôi có một đoạn mã cần thiết trong 2 bộ điều khiển của tôi, nhưng không phải tất cả chúng. Phương pháp này thuộc về đâu? Tôi đã đọc về những người giúp đỡ, nhưng những người đó dường như là cho mã liên quan đến xem. Ai đó đã đề xuất thư mục lib, nhưng điều đó có vẻ 'quá xa' từ logic điều khiển, tôi không cần nó trong quan điểm hoặc mô hình. Có ai đó gặp phải vấn đề đó không?đường ray 3 - mã được chia sẻ giữa nhiều bộ điều khiển - nơi đặt nó?
9
A
Trả lời
11
Có ba tùy chọn, dễ nhất (mặc dù, ô uế nhất) là bộ điều khiển ứng dụng. Hai tùy chọn còn lại là bộ điều khiển chung được chia sẻ
class FooController < FooBarParentController
# code here
end
class BarController < FooBarParentController
# code here
end
Cách sử dụng tùy thuộc vào mức độ liên quan của các bộ điều khiển này.
Giải pháp cuối cùng là một mô-đun
module FooBarModule
extend ActiveSupport::Concern
included do
# class level code
# before_filter ....
end
module ClassMethods
# all class methods here
end
# instance methods here
end
Đây là nơi chia sẻ các mã cần thiết dành cho một số ít các bộ điều khiển ad-hoc, hoặc nếu bạn đã sử dụng thừa kế trên và mã này không hoàn toàn phù hợp với tập hợp con này (do đó cố gắng mô phỏng đa thừa kế).
Các vấn đề liên quan
- 1. Mã chia sẻ giữa Bộ điều khiển MVC ASP.NET
- 2. Đường ray 3 URL không có tên bộ điều khiển
- 3. Angularjs chia sẻ dữ liệu giữa các bộ điều khiển
- 4. Chia sẻ NSOperationQueue trên Xem bộ điều khiển?
- 5. Spring MVC: @SessionAttributes được chia sẻ giữa các bộ điều khiển?
- 6. Eclipse: chia sẻ mã giữa nhiều dự án
- 7. Sử dụng dịch vụ góc để chia sẻ dữ liệu giữa các bộ điều khiển
- 8. ASP.NET MVC - Chia sẻ trạng thái phiên giữa các bộ điều khiển
- 9. Đường ray - nơi đặt tệp dữ liệu?
- 10. Đường ray: Nơi để xác định phương thức trợ giúp sẽ có sẵn cho một số bộ điều khiển?
- 11. Chia sẻ một biến giữa các bộ điều khiển trong angular.js
- 12. Bộ nhớ chia sẻ giữa nhiều phiên bản AWS EC2
- 13. Tuyến đường Spray.io có thể được chia thành nhiều "Bộ điều khiển" không?
- 14. Đường dẫn tài sản truy cập từ Bộ điều khiển đường ray
- 15. bảng điều khiển đường ray - chạy một khối mã
- 16. Tỷ lệ giới hạn cho bộ điều khiển đường ray
- 17. Đường ray tạo ra Bộ điều khiển Phiên
- 18. Nhiều ứng dụng có mã chia sẻ
- 19. Khi nào tạo bộ điều khiển mới trong đường ray
- 20. Nơi đặt mã Rails không phải là mô hình, chế độ xem, bộ điều khiển hoặc trình trợ giúp?
- 21. ASP.NET MVC 3 - Xử lý nhiều tên miền và chia sẻ một mã duy nhất-base
- 22. Bộ nhớ tệp được chia sẻ cho Ứng dụng Rails
- 23. Bố cục đường ray trên mỗi bộ điều khiển
- 24. xem đường ray mà không cần bộ điều khiển
- 25. Cách hợp nhất nhiều ứng dụng đường ray và chia sẻ tài nguyên
- 26. Mã được chia sẻ lại qua nhiều giải pháp
- 27. Mô hình ZF2 được chia sẻ giữa các Mô-đun
- 28. Cách gọi đường ray 3 phương thức mô hình trong bảng điều khiển
- 29. Tải lại bảng điều khiển đường ray
- 30. Chia sẻ trình xử lý sự kiện trên nhiều điều khiển
cảm ơn câu trả lời hữu ích này! giải pháp cuối cùng có vẻ với tôi linh hoạt nhất, vì vậy tôi nghĩ rằng tôi sẽ cố gắng này. bạn có thể giải thích một chút nơi tôi nên đặt mã này (trong một mô-đun trong thư mục lib?) – user573335
Cá nhân tôi đặt nó trong thư mục bộ điều khiển. –
Nếu nó liên quan cụ thể đến ứng dụng này, hãy đặt nó dưới thư mục ứng dụng (có thể trong thư mục con 'mô-đun'). Thư mục lib là nhiều hơn cho các tiện ích mục đích chung mà không phải là ứng dụng cụ thể. –