如何解决Rails:请求 src 的 turbo-frame 解释为 format.html
我注意到通过 src
属性设置延迟加载 turbo 帧的这种奇怪行为:
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
。是什么原因造成的以及如何解决?
附言primary_menu.turbo_stream.slim
存在于该控制器操作中。
本地版本:
hotwire-rails 0.1.3
@hotwired/turbo-rails 7.0.0-beta.5
解决方法
在更了解 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
包装块都将被静默忽略。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。