-1

我正在使用我的 application_helper.rb 文件中定义的以下视图助手:

def even_odd(index)
  if index.to_i % 2 == 0
    "left_border white"
  else
    "left_border"
  end
end

在我看来,有一张表需要灰白色图案的备用类:

<td class=<%= even_odd(index) %>> <%=investment.amount %> </td>

然而,这只会返回left_border,而不是left_border white。我究竟做错了什么?

4

4 回答 4

3

尝试这个

<td class="<%= even_odd(index)%>"> <%=investment.amount %> </td>
于 2013-07-17T06:10:37.537 回答
3

Rails 有一个用于此功能 的内置助手:

<tr class="left_border <%= cycle(' white', '') %>"></tr>
于 2013-07-17T06:19:59.017 回答
1

尝试这个

def even_odd(index)
 ((index.to_i % 2) == 0 ? "left_border white" : "left_border" )
end

杀死多余的空间<%=even_odd(index)%>

并将引号添加回您的课程<td class="<%=even_odd(index) %>">

于 2013-07-17T06:17:10.853 回答
1

我稍微更新了你的方法,我使用三元运算符来减少代码行:-

def even_odd(index)
  ((index.to_i%2 == 0) ? "left_border white" : "left_border")
end

我还想建议您在视图中对辅助方法使用插值:-

<td class="<%= even_odd(index) %>"> <%=investment.amount %> </td>

我对erb模板不太熟悉,我在haml模板中习惯了这个。顺便说一句,我更新了答案。

于 2013-07-17T06:18:38.230 回答