2010-04-22 28 views
5

Ruby'de dahil edilen bir sınıfın yöntemini nasıl çağırırsınız? Aşağıdaki örneğe bakınız. Bu çalışır, ancak ne istiyorum değildir:Ruby'de bulunan sınıfta çağrı yöntemi

require 'httparty' 

module MyModule 
    class MyClass 
    include HTTParty 
    base_uri 'http://localhost'   

    def initialize(path) 
     # other code 
    end 

    end 
end 

Bu ne istiyorum, ama undefined method 'base_uri' [...] söyleyerek çalışmıyor. Yapmaya çalıştığım şey, httparty'nin base_uri değerini başlangıç ​​parametresinden dinamik olarak ayarlamaktır.

require 'httparty' 

module MyModule 
    class MyClass 
    include HTTParty 

    def initialize(path) 
     base_uri 'http://localhost' 
     # other code 
    end 

    end 
end 

cevap

7

HTTParty source code göre, base_uri bir sınıf yöntemidir. Yani sınıf bağlamında

module MyModule 
    class MyClass 
    include HTTParty 

    def initialize(path) 
     self.class.base_uri 'http://localhost' 
     # other code 
    end 

    end 
end 

bu çözüm size kütüphaneyi nasıl kullandığınıza bağlı olarak, güvenli iş parçacığı olabilir sakının üzerinde yöntemini çağırmak gerekir.

+0

İplik güvenli konusuna daha fazla ışık atabilir misiniz? Raylardaki yakutta çok sayıda işlem var. Bu durumda güvenli mi? İki süreç aynı anda base_uri sınıflarını değiştirebilir. Bu nasıl çalışıyor? – user566245

İlgili konular