Tôi nên đặt phương thức nào trong Rails sẽ được tất cả các kiểu của tôi sử dụng?Đường ray để đặt phương thức sử dụng trong tất cả các kiểu
Trả lời
Bạn sẽ muốn thực hiện một số nghiên cứu về quy ước Rails được gọi là "Mối quan tâm". Dưới đây là lowdown: Tạo thư mục con được gọi là mối quan tâm trong thư mục ứng dụng của bạn. Tạo mô-đun của bạn trong ứng dụng/mối quan tâm và bao gồm các mô-đun trong tất cả các mô hình của bạn. Thêm đường dẫn đến ứng dụng/mối quan tâm đến config.autoload_path của bạn trong config/application.rb.
Trước khi bạn thực hiện bất kỳ điều nào trong số đó, tôi rất tò mò về phương pháp nào cần được bao gồm trong TẤT CẢ các mô hình? Chúng ta đang nói về bao nhiêu mô hình và bạn đang cố giải quyết vấn đề gì?
Nó dành cho dữ liệu đến một máy chủ từ xa, cụ thể là một máy chủ socket.io. Tôi đang sử dụng socket.io để cập nhật thời gian thực và tôi cần gửi những bản cập nhật đó từ nhiều mô hình. – JRPete
Tôi không nghĩ rằng mối quan tâm là đúng cách –
Đồng ý, Aroop. Tôi nghĩ rằng giải pháp cần phải ở mức cao hơn. Tôi không quen thuộc với socket.io, mặc dù. –
Có nhiều cách mà bạn có thể làm được điều này
- Sử dụng OOP và và tạo ra một lớp phụ cho ActiveRecord :: Base trong dự án của bạn và sử dụng lớp đó như cha mẹ cho tất cả các mô hình của bạn
- khỉ con đường ActiveRecord :: Base
- Tạo một module và bao gồm rằng trong tất cả các mẫu của bạn
bạn có thể viết phương pháp tái sử dụng trong một mô-đun và bao gồm trong các mô hình cần thiết.
tạo ra một tập tin trong thư mục lib/reusable.rb
module Reusable
def reusable_method_1
puts "reusable"
end
def reusable_method_2
puts "reusable"
end
end
Cho phép nói nếu bạn muốn sử dụng trong mô hình người dùng
class User < ActiveRecord::Base
include Reusable
end
Và cũng đảm bảo rằng các autoload_path kích hoạt cho lib/thư mục trong application.rb
# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += %W(#{config.root}/lib)
Tôi thấy rất nhiều câu trả lời cho câu hỏi này và không ai trong số họ được đề cập bao gồm lib trong autoload_paths. +1 cho điều đó! giải quyết vấn đề của tôi –
Mở rộng bản ghi đang hoạt động khi máy chủ bắt đầu
# config/initializers/core_extensions.rb
class ActiveRecord::Base
# write ur common base code here
def self.per_page
@@per_page ||= 10
end
def self.pagination(options)
paginate :per_page => options[:per_page] || per_page, :page => options[:page]
end
end
- 1. cách nhận tất cả các tuyến đường trong ứng dụng đường ray của tôi?
- 2. Cách tìm cách sử dụng phương thức API trong tất cả các thư viện trong classpath?
- 3. Sử dụng các phương thức trợ giúp như html_escape trong giao diện điều khiển đường ray
- 4. đường ray chuyển các tham số sang phương thức 'mới'
- 5. Trong đường ray, sử dụng biến cục bộ hoặc biến mẫu trong phương thức hành động
- 6. Tìm tất cả việc sử dụng phương thức (bao gồm giao diện) sử dụng NDepend
- 7. Thay đổi giao thức thành https trong tất cả những người giúp đỡ đường ray
- 8. Aspectj @Around cắt tất cả các phương thức trong Java
- 9. Tạo và chỉnh sửa đối tượng bằng cách sử dụng phương thức trong đường ray
- 10. Làm thế nào để nội tuyến css khi sử dụng đường ray tài sản đường ray
- 11. Phương thức chưa xác định với "_path" trong khi sử dụng đường ray form_for
- 12. Xóa tất cả các thẻ html khỏi các thuộc tính trong đường ray
- 13. Danh sách các loại kiểu đường ray
- 14. Làm cách nào để chạy một phương thức trước tất cả các bài kiểm tra trong tất cả các lớp?
- 15. Sử dụng UNION TẤT CẢ trong đường dẫn STUFF/XML
- 16. Đường ray sử dụng send_file để gửi nhiều tệp
- 17. Làm cách nào để xóa tất cả các phiên đường ray?
- 18. Các kiểu xem có được sử dụng trong đường ray không?
- 19. Đường ray đặt bố cục từ bên trong phương thức before_filter
- 20. Tiền tố đường dẫn chuẩn bị cho tất cả các tuyến đường ray
- 21. Đường ray: cách ghi đè: phương thức tiêu diệt?
- 22. Ẩn tất cả các bộ điều khiển xem phương thức
- 23. thêm phương thức vào lớp tích hợp trong ứng dụng đường ray
- 24. phương thức setStage forState đặt hình ảnh cho tất cả các trạng thái trên một nút
- 25. Làm cách nào tôi có thể sử dụng Tìm kiếm Cấu trúc Intellij để tìm tất cả các phương thức sử dụng hai lớp được đặt tên?
- 26. phương thức undefined `next_result 'cho Mysql2 (đường ray 3)
- 27. đường ray form_for kiểu dáng
- 28. Sử dụng phương thức .where trong Rails3
- 29. redirect_to bằng cách sử dụng POST trong đường ray
- 30. phương pháp create_or_update trong đường ray
Sao chép? http://stackoverflow.com/questions/2328984/rails-extending-activerecordbase –