嵌入式ruby中的动态css类

时间:2014-10-28 20:24:34

标签: css ruby-on-rails ruby

Persona的persona_id为1,2或3.我想在嵌入的ruby中指定classa-1-button,persona-2-button或persona-3-button的类类型。以下代码无效,我不知道原因:

<% 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 %>

我没有按照以下方式去做,因为看起来你不能有&lt;%=%&gt;在&lt;%=%&gt;内:

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

2 个答案:

答案 0 :(得分:4)

你已经几乎正确了。

您需要意识到的是,当您在<% / %>标记内时,您处于Ruby上下文中。这意味着,"..."创建了一个String,你可以使用常规的Ruby字符串插值,如下所示:

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

答案 1 :(得分:3)

你在Ruby上下文中放置一个变量,你受Ruby规则的约束,而不是ERB。在Ruby中,它使用字符串插值完成:

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