Tüm modellerim tarafından kullanılacak olan raylara bir yöntem yerleştirmeliyim?Tüm modellerde kullanılacak yöntemi nereye yönlendirecek raylar
cevap
"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?
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
Endişe doğru yol olduğunu düşünmüyorum –
Agreed, Aroop. Bence çözümün daha üst düzeyde olması gerekiyor. Yine de socket.io ile yeterince tanıdık değilim. –
bu
- Kullanım OOP elde etmek ve ve projenizde ActiveRecord :: Base için bir alt sınıf oluşturmak ve tüm modeller için bir ebeveyn olarak o sınıfı kullanırım hangi birden fazla yolu vardır
- Maymun yolu ActiveRecord :: Base
- bir modül oluşturun ve tüm modeller
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)
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 –
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
Yinelenen? http://stackoverflow.com/questions/2328984/rails-extending-activerecordbase –