2012-02-07 11 views

cevap

0

"Endişeler" adlı Rails sözleşmesi hakkında araştırma yapmak isteyeceksiniz. İşte lowdown: Uygulama dizininizde endişeler olarak adlandırılan alt dizin oluştur. Uygulamanızı/endişelerinizde modülünüzü oluşturun ve tüm modellerinizdeki modülü dahil edin. Config/application.rb dosyasındaki config.autoload_path dosyasına app/endişeleri yolunu ekleyin.

Bunlardan herhangi birini yapmadan önce, TÜM modellere nasıl bir yöntemin dahil edilmesi gerektiğini merak ediyorum. Kaç tane model konuşuyoruz ve hangi sorunu çözmeye çalışıyorsunuz?

+0

Bu, uzak bir sunucuya, yani socket.io sunucusuna veri içindir. Gerçek zamanlı güncellemeler için socket.io kullanıyorum ve bu güncellemeleri birden fazla modelden göndermem gerekiyor. – JRPete

+0

Endişe doğru yol olduğunu düşünmüyorum –

+0

Agreed, Aroop. Bence çözümün daha üst düzeyde olması gerekiyor. Yine de socket.io ile yeterince tanıdık değilim. –

2

bu

  1. Kullanım OOP elde etmek ve ve projenizde ActiveRecord :: Base için bir alt sınıf oluşturmak ve tüm modeller
  2. için bir ebeveyn olarak o sınıfı kullanırım hangi birden fazla yolu vardır
  3. Maymun yolu ActiveRecord :: Base
  4. bir modül oluşturun ve tüm modeller
9

yılında bir modülde yeniden yöntemlerini yazabilir ve gerekli modellerinde içerdiğini sayılabilir.

lib bir dosya oluşturmak/reusable.rb kullanıcı modelinde

class User < ActiveRecord::Base 
    include Reusable 
end 

bu kullanmak Ve ayrıca autoload_path içinde lib/dizin için etkin olmasını sağlamak istiyorsanız

module Reusable 
    def reusable_method_1 
    puts "reusable" 
    end 

    def reusable_method_2 
    puts "reusable" 
    end 
end 

Diyelim application.rb

# Custom directories with classes and modules you want to be autoloadable. 
config.autoload_paths += %W(#{config.root}/lib) 
+0

Bu soruya çok cevap verdim ve autoload_paths'te lib dahil olmak üzere hiçbirinin bahsettiği hiçbir şeyden bahsetmedim. Bunun için +1! sorunumu çözdüm –

3

Sunucu başlatılırken etkin kayıt uzantıları

# 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 
İlgili konular