我注意到了通过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尽管turbo_frame_request?返回=> true,但由于某种原因,它会被解释为常规请求的html请求。是什么导致了它,以及如何修复它?
对于该控制器操作,存在P.S. primary_menu.turbo_stream.slim。
本地版本:
hotwire-rails 0.1.3 @hotwired/turbo-rails 7.0.0-beta.5
发布于 2021-05-30 18:32:03
在对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名称必须在此处匹配,并且该响应中的原始definition/require.turbo_frame_tag包装块将被忽略。https://stackoverflow.com/questions/67546910
复制相似问题