我有一个带搜索的索引页,除了没有结果的时候,也就是我得到错误的时候,它基本上是有效的:-
response has no matching <turbo-frame id="events"> element
当有搜索结果时,我不会得到这个。当结果为空时,是否需要指定要在索引操作中呈现的分部?在我看来,为什么没有对此进行评估?
index.html.erb
<div id="events-wrapper">
<% if @events.any? %>
<%= render "events", events: @events %>
<% else %>
<%= render "no_events" %>
<% end %>
</div>
_events.html.erb
<%= turbo_frame_tag "events" do %>
<%= render collection: @events, partial: 'event' %>
<%= raw pagy_bootstrap_nav(@pagy) %>
<% end %>
_no_events.html.erb
<div class="no-events-notice alert alert-primary">
No events found
</div>
events_controller.rb索引操作
def index
@pagy, @events = pagy(find_events(filter_params))
end
基本上,我的搜索工作正常,但当没有结果时——除非刷新页面,否则我的no_events
部分不会被呈现。我错过了什么?
我已经从等式中删除了分部,只是用一个简单的div替换了那一行,但它仍然没有显示。
解决方案是将结果封装在一个id为"的turbo帧中;事件";就像这样:-
<turbo-frame id="events">
<% if @events.any? %>
<%= render "events", events: @events %>
<% else %>
<%= render "no_events" %>
<% end %>
</turbo-frame>