1

我有一个 .html.erb 文件,用于在网站上显示表单。( Redmine)

我需要将特定行加粗。当 tracker == Anomaly 时,该行必须为粗体。

redmine 样本

<% if query.columns == Anomaly>
  make the text bold

但我认为我的逻辑错误。我怎样才能实现我的想法?

我知道以下代码中处理了哪些 ruby​​ 行。但我不知道如何根据查询使行加粗。 当前代码

<style>
.bolding {font-weight: bold;}
</style>

<tr id="issue-<%= issue.id %>" class="bolding hascontextmenu 
<%= cycle('odd', 'even') %> 

<%= issue.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">

<td class="checkbox hide-when-print"><%= check_box_tag("ids[]", issue.id, false, :id => nil) %></td>

<td class="id"><%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %></td>

<% query.columns.each do |column| %><%= content_tag 'td', column_content(column, issue), :class => column.css_classes %><% end %>

</tr>
4

2 回答 2

2

如果您清楚地表达您的问题并提供所有相关细节,您可以避免所有的混淆。正如@iain 提到的,query它不是来自 Rails,而是来自 Redmine。您应该在问题中提到您使用 Redmine

也就是说,它看起来像query与此类一起使用/来自此类

每个columninquery.columns都有一个name属性和一个value()方法(除其他外)

您可以检查集合中columnquery.columns其中一个具有value "Anomoly"name "Tracker"的。

query.columns.any? { |c| c.name.downcase == "tracker" && c.value(issue) == "Anomoly" }

您需要获取 this 的返回值,以便有条件地将bolding类应用于您的表格行。

<%= apply_bolding = query.columns.any? { |c| c.name.downcase == "tracker" && c.value(issue) == "Anomoly" } %>
<tr id="issue-<%= issue.id %>" class="<%= apply_bolding ? "bolding" : nil %> hascontextmenu <%= cycle('odd', 'even') %> 
于 2012-12-13T22:33:31.767 回答
0

这是正确的方法

<tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>" 
  <% if issue.tracker_id == 12 %> style="font-weight:bold" <% end %>
>

    <td class="checkbox hide-when-print"><%= check_box_tag("ids[]", issue.id, false, :id => nil) %></td>
    <td class="id"><%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %></td>
        <% query.columns.each do |column| %><%= content_tag 'td', column_content(column, issue), :class => column.css_classes %><% end %>

</tr>
于 2012-12-14T15:45:39.110 回答