2014-10-28 76 views
0

角色的persona_id爲1,2或3.我想要在嵌入式中指定一個類型的persona-1-button,persona-2-button或persona-3-button紅寶石。下面的代碼不工作,我不知道爲什麼:嵌入式ruby中的動態css類

<% current_user.personas.each do |persona| %> 
    <% foo = persona.persona_id.to_s %> 
    <% bar = "persona-" + foo + "-button" %> 
    <%= link_to "Persona", persona_path(persona), class: "btn btn-medium bar" %> 
<% end %> 

,因爲它似乎你不能有一個<%=%>一個<%=%裏面我沒有做到這一點的follwoing方式>:

<% current_user.personas.each do |persona| %> 
    <%= link_to "Persona", persona_path(persona), class: "btn btn-medium persona<%=persona.persona_id%>button" %> 
<% end %> 
+0

的[動態CSS生成不Rails4工作]可能重複(http://stackoverflow.com/questions/26604648/dynamic-css-generation-doesnt-work-in-rails4) – Surya 2014-10-28 20:45:30

回答

3

您正在將一個變量放在您被Ruby規則綁定的Ruby上下文中,而不是ERB。在Ruby中,它使用字符串插值完成:

<%= link_to "Persona", persona_path(persona), class: "btn btn-medium #{bar}" %> 
+0

謝謝你,謝謝你。 – Bazley 2014-10-28 22:50:35

4

你已經差不多正確了。

你需要認識到的一點是,當你在<%/%>標籤中時,你處於Ruby上下文中。這意味着,"..."創建String內,您可以使用普通的Ruby串插,就像這樣:

<%= link_to "Persona", persona_path(persona), class: "btn btn-medium #{bar}" %>