2016-04-07 15 views
0

Bu yüzden, api çağrıları yapan, farklı şeyler yapan ancak her ikisinin de sınıfın en üstündeki aynı httparty ayarlarına sahip, bu ayarları paylaşmanın en iyi yolu olan 2 hizmetim var. Miras veya başka bir kodlama mekanizması mı kullanıyorsunuz?Httparty - sınıflar arasında paylaşım değerleri

örn.

class FirstService 
    include HTTParty 
    format :json 
    base_uri: "url" 
    basic_auth 
    default_timeout 360 

ve

class SecondService 
    include HTTParty 
    format :json 
    base_uri: "url" 
    basic_auth 
    default_timeout 360 

Ben üst düzey bir sınıf oluşturmak ve bir şekilde hem bu değerleri devralabilir?

cevap

0

Bunu evet yapabilirdiniz. Ben sadece hizmetin birbiri arasında kalıtımı varsa bunu yapmamı öneririm (Hayvan, Kedi ve Köpek'in mantıksal ana sınıfıdır, fakat Kedi ve Araba değil). Aksi takdirde, ben her iki dahil etmek için bir modülü kullanarak öneririm:

module HTTPartyReady 
    include HTTParty 
    format :json 
    base_uri: "url" 
    basic_auth 
    default_timeout 360 
end 

class FirstService 
    include HTTPPartyReady 
end 
0

böyle config/settings.yml bir dosya oluşturun: Kullanmak whereever

development: 
    base_uri: "url" 
    default_timeout 360 

test: 
    base_uri: "url" 
    default_timeout 360 

production: 
    base_uri: "url" 
    default_timeout 360 

Sonra uygulamanızda veya bu değerler bu değerlere erişir ile:

Rails.application.settings.base_uri 
İlgili konular