这是index.html.erb。如果备注属性列中不存在记录,如何使用方法隐藏表头(例如备注)?最好不要使用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>
但是我可以隐藏备注属性值,如下所示;
_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
欢迎任何建议。
提前谢谢。
答案 0 :(得分:1)
如果您希望隐藏列,因为数组中的记录没有备注值,您可以执行以下操作:
在控制器的辅助模块文件中定义一个方法:
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语句。我个人认为留下一个空栏是很重要的,所以用户肯定知道它没有。