Rails

2010-02-15 17 views
21

Yalnızca görünümlerde ve yalnızca yardımcı sabitleri işlemenin en iyi yolu Görüntülemelerde yalnızca kullanılan bir sabitim var, ancak farklı yerlerde farklı şekillerde kullanılır. Bu bir dizi seçenek ismidir ve belirli kutular için kullanılır, ancak bu dizide dizelerin bulunup bulunmadığını görmek için bunu diğer görünümlerde de kullanıyorum ve buna göre yanıt verin.Rails

DRY'yi korumak için bunu işlemenin en iyi yolu nedir?

İlk başta bir yardımcıda bir sabit oluşturdum, ancak bu görünümlerde erişilebilir görünmüyor.

Bir yardımcıda bir yöntem oluşturmaya geçtiğim için, sabit olanı döndürme dışında hiçbir şey yapmıyor. Ancak, aslında bu aslında Rails'in ruhuna aykırı gibi görünüyor, çünkü esasen daha düşük kasalı bir sabit kullanıyorum.

Elbette bunu bir modele yapıştırabilirim, ancak modellerin hiçbiriyle hiçbir ilgisi yok.

cevap

35

Sabitleri yardımcılarda tanımlayabilirsiniz, ancak görünümlerinize tam nitelikli adlarıyla başvurmanız gerekir.

Herhangi bir görünümde application_helper.rb

module ApplicationHelper 
    MyConstant = "something" 
end 

:

<%= ApplicationHelper::MyConstant %> 
+0

Denetleyicilere/modellere yazarak yazmaktan kaçınmak için ApplicationHelper'ı kullanabilirsiniz. İzlemelerin içinde yapamazsın, değil mi? :/ – m33lky

+0

Denetleyicide bulunan tüm modüller, görünümler için kullanılabilir. – m33lky

+2

Ayrıca yardımda yardımcı olması için bir yöntem yazabilirsiniz, böylece görünümde yardımcı adı tekrarlamak zorunda kalmazsınız. – Will

5

config/initializers/constants.rb'a yerleştirin ve her yerde kullanılabilir durumda olacaktır.

+0

tür talihsiz bu sadece bir görüş ve yardımcıları kullanılacak Genel bir sabit eklemek görünüyor, emin değilim Bu, onu takma adında bir yöntem kullanmaktan daha iyidir. –

+0

FYI - raylar 4 üretim modunda artık geçerli değil - şablonlar farklı bir isim alanında yaşıyor ve ApplicationController üzerinden sabitlere erişmeye ihtiyaç duyuyor: CONSTANT_NAME – Kevin