[英]Rails Ransack - how display empty result?
我已經將Ransack集成到我的Rails應用程序中,我通過ajax發布來使用它,所以在index.html.erb
它使用了_partner.html.erb
但是當我返回空的搜索結果時,我希望實現顯示“無結果”文字。
我已經嘗試過這種方式(在index.js.erb
):
$('#partners_list').html('<% if @partners %> <%= escape_javascript render(@partners) %> <% else %><li class="collection-item">No result</li><% end %>');
$('nav.pagination').html('<%= escape_javascript(paginate(@partners, :remote => true).to_s) %>');
但這是行不通的,因為如果沒有任何搜索結果,它將生成此javascript代碼:
$('nav.pagination').html(' ');
$('nav.pagination').html('');
這不會在<ul>
( index.html.erb
)中插入任何<li>
元素。
<ul id="partners_list" class="collection margin-0-minus-15 z-depth-2">
<%= render @partners %>
</ul>
(我也嘗試過在index.html.erb
處理,但似乎如果沒有搜索結果,則@partners
不存在...因為<%= debug(@partners) %>
不會顯示如果搜索結果為空,則視圖上沒有任何內容)
這是我的動作 :
def index
@search = Partner.where(is_active: true).search(params[:q])
@partners = @search.result.includes(:user, :county).order(created_at: :desc).page(params[:page])
end
當后端搜索響應的結果為空時,應用程序顯示“空結果”文本時,如何實現?
您是否嘗試過html('')之外的if else語句?
<% if @partners.any? %>
$('#partners_list').html("<%= j render(@partners) %>")
<% else %>
$('#partners_list').html("<li class="collection-item">No result</li>")
<% end %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.