1

我注意到涡轮帧通过src属性设置延迟加载的这种奇怪行为:

nav
  = turbo_frame_tag 'primary_menu', src: primary_menu_path
  : def primary_menu
  :   respond_to do |format|
  :     format.turbo_stream
> :     format.html { binding.pry ; render plain: 'should not reach this block' }
  :   end
  : end

)> turbo_frame_request?
=> true

出于某种原因,它被解释为常规请求的 html 请求,尽管 turbo_frame_request?返回 => true。是什么导致它以及如何解决它?

PSprimary_menu.turbo_stream.slim存在于该控制器操作。

本地版本:

hotwire-rails 0.1.3 @hotwired/turbo-rails 7.0.0-beta.5

4

1 回答 1

2

在具有更好turbo内部知识的人正确解释之前,以下是一种对我有用的方法:

<%= turbo_frame_tag 'primary_menu', src: primary_menu_path %>

将被解释为 HTML 请求:

def primary_menu
  # load your thing

  respond_to do |format|
    format.html
  end
end

在你primary_menu.html.erb确保你用<%= turbo_frame_tag 'primary_menu' do %>块包装你的内容。

请记住:

  • turbo_frame_tag名称必须在此处与其原始定义/要求相匹配。
  • 该响应中的任何其他turbo_frame_tag包装块都将被静默忽略。
于 2021-05-30T10:32:03.323 回答