ruby-on-rails Rails视图未显示部分-“响应没有匹配的< turbo-frame id="events">元素”

afdcj2ne  于 2022-11-19  发布在  Ruby
关注(0)|答案(1)|浏览(114)

我有一个索引页面,其中的搜索大多数工作,除了当没有结果,这是当我得到错误:-

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>

_事件.html.erb

<%= turbo_frame_tag "events" do %>
  <%= render collection: @events, partial: 'event' %>
  <%= raw pagy_bootstrap_nav(@pagy) %>
<% end %>

_no_事件.html.erb

<div class="no-events-notice alert alert-primary">
   No events found
</div>

事件_控制器.rb索引操作

def index
    @pagy, @events = pagy(find_events(filter_params))
  end

基本上我的搜索工作正常,但当没有结果时-我的no_events partial没有得到渲染,除非我刷新页面。
我已经从等式中删除了部分,只是用一个简单的div替换了那一行,它仍然没有显示出来。

6ss1mwsb

6ss1mwsb1#

解决方案是将结果 Package 在具有“事件”id的turbo帧中,如下所示:

<turbo-frame id="events">
  <% if @events.any? %>
    <%= render "events", events: @events %>
  <% else %>
    <%= render "no_events" %>
  <% end %>
</turbo-frame>

相关问题