我在我的index.html.erb中试过这个但是没有用。
<%= render(@xvaziris) || 'No records' %>
index.html.erb
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="table-responsive myTable">
<table id = "kola" class="table listing text-center">
<thead>
<tr class="tr-head">
<td>Date</td>
<td>Description</td>
<td>Amount</td>
<td>Discount</td>
<td>Paid</td>
<td>Balance</td>
</tr>
</thead>
<a href="#" class="toggle-formed" style="float: right;" ><strong>Search</strong></a>
<div id="sample">
<%= form_tag xvaziris_path, remote: true, method: :get, class: "form-group", role: "search" do %>
<p>
<center><%= text_field_tag :search, params[:search], placeholder: "Search for.....", autofocus: true, class: "form-control-search" %>
<%= submit_tag "Search", name: nil, class: "btn btn-md btn-primary" %></center>
</p>
<% end %><br>
</div>
<tbody>
<%= render(@xvaziris) || 'No records' %>
</tbody>
</table>
</div>
</div>
</div>
index.js.erb的
<% @balance = 0 %>
$('#kola tbody').empty();
<% @xvaziris.each do |xvaziri| %>
$('#kola tbody').append("<%= j render xvaziri %>");
<% end %>
我需要将它包装在index.js.erb中的某个位置才能运行。
欢迎任何建议。
提前谢谢。
答案 0 :(得分:4)
我想你可能会想要这样的东西:
<% if @xvaziris.empty? %>
<em>No records</em>
<% else %>
<%= render(@xvaziris) %>
<% end %>
或者另一种更短但不太可读的方式:
<%= @xvaziris.present? ? render(@xvaziris) : "No Records" %>
我个人更喜欢第一种解决方案
所以你问为什么你的解决方案不起作用..
这是因为render
返回一个字符串。 (在你的情况下是空的)
||
运算符就像一个简短的if / else:
让我们说你有一个零值,然后你这样做:
value = nil
value || 1 # => will return 1
现在是if / else方式:
value = nil
result = if value
value
else
1
end
result # => will return 1
现在你的情况:
value = render(...) # => "" (empty string)
value || "something else" # => "" (empty string)
这是因为空字符串不返回false
要检查值是真还是假,您可以使用双重协商(!!
运算符),这只是将对象强制转换为布尔值的方法。
empty_string = ""
!!empty_string # => true
!!nil # => false
答案 1 :(得分:0)
在我用以下方式更改了index.js.erb和if else条件后,我得到了它。
index.js.erb的
<% @balance = 0 %>
$('#kola tbody').empty();
<% if @xvaziris.empty? %>
$('#kola tr').remove();
$('#kola tbody').append("No Results Found For Your Search...");
$("#kola tbody").css({"background-color": "white", "font-size": "100%", "font-weight": "900"});
<% else %>
<% @xvaziris.each do |xvaziri| %>
$('#kola tbody').append("<%= j render xvaziri %>");
<% end %>
<% end %>