2014-06-08 23 views
0

在簡單的形式我有幾個單選按鈕。單選按鈕的標籤,我想跨度CSS添加到標籤的一部分,所以它看起來是這樣的:在simple_form部分CSS爲label_method

30 days <strong>for only 30 bucks </strong> 

我的輸入是這樣的:

<%= f.input :duration, :label => "Duration: ", 
      :collection => Payment::OPTIONS, 
      :label_method => lambda { |a| a.first.to_s + " days for only" + a.last.to_s + " $ " } , 
      :value_method => lambda { |a| a.first.to_s + "-" + a.last.to_s } , 
      :as => :radio %> 

是它可以將CSS加起來也只有部分"for only" + a.last.to_s + " $ "

+0

有什麼不好的跨度,就像你說的? – Ven

+0

它顯示的HTML和沒有解釋的HTML。下面回答固定它! – Ayrad

回答

1

使用字符串插值,我會的東西開始喜歡

:label_method => lambda { |a| "#{a.first} days for only #{a.last} $" } , 
:value_method => lambda { |a| "#{a.first} - #{a.last}" } , 

你可以改進你的變量名稱,首先和最後看起來有點混亂,我假設你會使用類似durationprice

現在我們仍然需要修復span,好吧你問一個跨度,但在你的例子中,你寫<strong>,我假設混淆了俄羅斯人,所以讓我們拿你的例子。因此,要解決這個問題,我們寫:

​​

我們可以寫在字符串中的HTML,但我們必須確保告訴給該字符串可以被視爲「安全」,並不需要再次逃脫渲染(否則你只會在視圖中看到標記)。這就是爲什麼需要添加.html_safe()

現在要真的很乾淨,我會將其轉移給幫手。因此,在您<your-resource-name>Helper添加

def long_duration_label(payment_option) 
    ""#{payment_option.duration} days <strong>for only #{payment_option.price}$</strong>".html_safe 
end 

,並在您看來,這成爲

:label_method => lambda { |payment_option| long_duration_label(payment_option) },