簡體   English   中英

Rails Ransack-如何顯示空結果?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM