2012-02-07 20 views

Trả lời

0

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ì?

+0

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

+0

Tôi không nghĩ rằng mối quan tâm là đúng cách –

+0

Đồ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ù. –

2

Có nhiều cách mà bạn có thể làm được điều này

  1. 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
  2. khỉ con đường ActiveRecord :: Base
  3. Tạo một module và bao gồm rằng trong tất cả các mẫu của bạn
9

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) 
+0

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 –

3

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 
Các vấn đề liên quan