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 %>
答案 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}" %>