2016-03-29 14 views
1
module AHelper 
    class Builder 
    def link 
     build_link(@apple) 
    end 
    end 
    def build_link(sth) 
    link_to "#", "buy #{sth}" 
    end 
end 

Bir yardımcı modülde, link_to yönteminin çağrılması mümkün ancak sınıf Oluşturucu içinde değil. Bu yüzden, bir yardımcı modülde bulunan harici bir yöntemi çağırmanın ve bir örnek değişken değerini bu yönteme geçirmenin bir yolunu arıyorum.Raylar - bir sınıf örneği yönteminin içinde bir yardımcı modül yönteminin çağrılması

ActionView :: UrlHelper'ı, yardımcı modülde zaten mevcut olduğu gibi sınıfa dahil etmek istemiyorum. Ve link_to, burada ihtiyaçların karşılanması için örnek bir durumdur. Bu raylarda ruby ​​içinde nasıl yapılır? Bir denetleyici veya self ise bir yardımcı olduğunu veya olmadığını

+0

Mümkün olan yinelenen [Can Rayları Yönlendirme Yardımcıları (örn. Mymodel \ _path (model)) Modellerde Kullanılabilir?] (Http://stackoverflow.com/questions/341143/can-rails-routing-helpers-ie-mymodel -pathmodel-içinde-modellerde kullanılır) – lcguida

+0

"Link_to" yalnızca bu soruda bir örnek olduğundan çoğaltılamaz. – Albin

cevap

3

Sen Builder

module AHelper 
    class Builder 
     def initialize(view) 
     @view = view 
     end 
     def link 
     @view.build_link(@apple) 
     end 
    end 
    def build_link(sth) 
     link_to "#", "buy #{sth}" 
    end 
end 

örneğine görünümü bağlamı geçirerek bunu başarabilirsiniz Ve oluşturucu örneğini zaman view_context geçmek görünüm.

İlgili konular