如果没有列属性,隐藏表头- Ruby on rails



这是一个index.html.erb。当Remark属性列中不存在记录时,如何使用方法隐藏表头(例如Remark) ?最好不要使用JavaScript。

index . html。erb

<table id = "kola" class="table listing text-center">
                <% has_remark = collection_has_remark?(@aslani361s) %>
                <thead>
                    <tr class="tr-head">
                        <td>Date</td>
                        <td>Description</td>
                        <td>Amount</td>
                        <td>Discount</td>
                        <td>Paid</td>
                        <td>Balance</td>
                        <td>DelnDel</td>
                        <% if has_remark %>
                        <td>Remark</td>
                        <% end %>
                        <td>Hide</td>
                    </tr>
                </thead>
</table>

但是我可以像下面这样隐藏remark属性值;

_aslani361.html.erb

<% if aslani361.remark.present? -%>
    <td class="col-1"><%= aslani361.remark %></td>
<% end %>

aslani361s_helper.rb

module Aslani361sHelper
    def collection_has_remark?(collection)
        collection.each do |aslani361|
            if aslani361.remark.present?
                return true
            end
        end
    end
end

aslani361.rb

class Aslani361 < ActiveRecord::Base
end

欢迎提出任何建议。

提前感谢。

如果您希望隐藏该列,因为您的数组中没有记录具有remark值,您可以这样做:

在帮助模块文件中为控制器定义一个方法:

def collection_has_remark?(collection)
  collection.each do |record|
    if record.remark.preset?
      return true
    end
  end
end

然后在视图中使用

<% has_remark = collection_has_remark?(@records) %>
<thead>
    <tr class="tr-head">
        <td>Date</td>
        <td>Description</td>
        <td>Amount</td>
        <td>Discount</td>
        <td>Paid</td>
        <td>Balance</td>
        <% if has_remark %>
          <td>Remark</td>
        <% end %>
    </tr>
</thead>

然后在循环中使用相同的if语句。我个人认为留下一个空列是很重要的,这样用户就可以确定它没有。

最新更新