Rails在content_tag_for:li中向class添加文本

时间:2013-05-01 23:15:08

标签: ruby-on-rails

我有一个创建jquery可排序输出的内容标记。 有些项目我不想要排序,所以我在jquery中添加了以下内容:

    cancel: ".ui-state-disabled"

所以,现在我需要将“ui-state-disabled”放入li类。

目前创建li的代码是:

               <% wostatus.workorders.each do |workorder| %>
                <%= content_tag_for(:li, workorder) do %>
                    <div class="<%= workorder.type.maximo_no %> <%= workorder.priority %> ">
                      <a href="<%= workorder_path(workorder) %>">
                        <strong><%= workorder.wonum %></strong>
                        <%= workorder.description %>
                      </a>
                    </div>
                <% end %>
            <% end %>

HTML中的结果是:

<li class="workorder" id="workorder_36">
    <div class="  ">
       <a href="/workorders/36">
          <strong>13-39870</strong>
                        Added some text again
          </a>
    </div>
</li>

在浏览器中,如果我编辑li类以包含“ui-state-disabled”,它将以我想要的方式工作。

现在,如果workorder.wostatus.id = 232 ??

,如何将“ui-state-disabled”插入li状态

感谢您的帮助!!

1 个答案:

答案 0 :(得分:1)

帮帮忙:

def disabled_workorder_li(workorder)
  {:class => "ui-state-disabled"} if workorder.id == 232
end

然后在视图中:

<%= content_tag_for(:li, workorder, disabled_workorder_li(workorder) %>

如果您跳过帮助程序并尝试在视图中执行所有操作,那么这就是它的样子:

<%= content_tag_for(:li, workorder, 
(workorder.id == 232) ? {:class => "ui_state_disabled"} : nil %>

看起来很可怕。将它放入帮手也可以更容易测试。