我已将Ransack集成到我的Rails应用程序中,我通过ajax帖子使用它,soso 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('');
这不会在<li>
中插入任何<ul>
个元素
(index.html.erb
)
<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
当我使用空结果进行后端搜索响应时,如何实现&#34;空结果&#34;文本?
答案 0 :(得分:0)
您是否尝试过html之外的if else语句(&#39;&#39;)?
<% if @partners.any? %>
$('#partners_list').html("<%= j render(@partners) %>")
<% else %>
$('#partners_list').html("<li class="collection-item">No result</li>")
<% end %>