2012-10-04 5 views
5

Değerleri tüm kapaklar olan bir nesneyim var ve f.label yardımcı programının tüm kapaklar olarak yazdırılmasını istiyorum - CSS dönüşümü.Neden f.label 'ALL' kapak dizgesini 'Tümü' olarak değiştirir

Şu anda, AAPL dizgesine sahip olduğum nesnede f.label, Aapl olarak tükürüyor.

Bir CSS dönüşümü kullanmak istemememin nedeni, nesnenin değerinin ALWAYS'ın büyük harf olması gerekmemesidir. Sadece f.label'un tam olarak db'de saklandığı gibi çıkmasını istiyorum - tercihen herhangi bir CSS shenanigansı olmadan.

Bunu nasıl yaparım?

cevap

12

humanize() numaralı telefonu arıyor gibi görünüyor. Rails bir eleman ismini bir etiket başlığına çevirdiğinde, bu gerçekleşir. Muhtemelen, etiketin metnini form öğesine açık olarak tanımlamanız gerekir.

<%= f.label(:aapl, 'AAPL') %> 

hatta

<%= f.label(:aapl, @yourVar) %> 

sizin için bir başka seçenek sunar Raylar çeviri yeteneği olabilir. Bu Rails> 3.1 için geçerlidir! Size göre

:

<% form_for @post do |f| %> 
    <%= f.label :title %> 
    <%= f.text_field :title %> 
    <%= f.submit %> 
<% end %> 

sizin en.yml olarak:

en: 
    helpers: 
    label: 
     post: 
     title: 'Your Title' 
+0

sorunu ben dinamik olarak üretilen edilecek etiketi gerektiğidir. Örneğin, özniteliğin "topic.name" olduğu göz önünde bulundurulduğunda. Bu nasıl çalışır? Açıkçası 'f.label (topic.name, topic.name)' çalışmıyor. – marcamillion

+0

Ayrıca, bu etiketleri bir onay kutularının koleksiyonunda oluşturuyorum - etiket her bir bloğa iletilen "her" yerel değişkenle "her" nin içinde. – marcamillion

+0

Belirli bir alan/onay kutusundan etiket başlığını oluşturmak için bir yardımcı yöntem oluşturabilirsiniz. Düşmanca olmak istemiyorum, ama bu sorunun bir parçası değil. Yeni bir soru sorup, durumu düzeltmek için kaynak kodu vermelisiniz. – Robin

2

bu deneyin:

f.label(topic).upcase.html_safe 
İlgili konular