这是一个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语句。我个人认为留下一个空列是很重要的,这样用户就可以确定它没有。