在显示类别列表的视图中,下面有一小部分显示这些类别的“默认值”。当用户点击那里时,它被一个下拉表单取代,他们可以在那里选择新的默认值。提交表单后,页面的两个部分-类别列表以及显示默认值的下部-将通过turbo流更新。
这一次成功了。如果我尝试第二次点击下面的元素,即使浏览器的网络选项卡显示有东西到达,整个页面还是一片空白。我不明白为什么会发生这种情况。
视图(索引页):
<%= turbo_frame_tag 'settings-content' do %>
<h3 class="heading4">Available book formats</h3>
<ul class="simple-list width-33" id="book-formats">
<%= render 'new_form_entry' %>
<%= turbo_frame_tag 'format-list' do %>
<%= render @book_formats %>
<% end %>
</ul>
<h3 class="heading4 margin-top-1 margin-bottom-50">Default Book Format</h3>
<ul class="simple-list width-25">
<li>
<%= turbo_frame_tag 'default-format' do %>
<%= render 'book_formats/set_default_form' %>
<% end %>
</li>
</ul>
<% end %>
字符串
控制器(相关的两种方法):
def set_default
@book_formats = BookFormat.all.order(:name)
end
def update_default
@new_default = BookFormat.find_by(name: book_format_params[:name])
@default_book_format.update(fallback: false)
@new_default.update(fallback: true)
@default_book_format = @new_default
@book_formats = BookFormat.all.order(:name)
end
型
update_default.turbo_stream.erb
<%= turbo_stream.replace 'format-list' do %>
<%= render @book_formats %>
<% end %>
<%= turbo_stream.replace 'default-format' do %>
<%= render 'book_formats/set_default_form' %>
<% end %>
型
我肯定在某个地方少了一小块。
1条答案
按热度按时间r8uurelv1#
turbo_frame_tag
helper呈现一个 标签和表单:字符串
turbo_stream.replace
将替换目标 #default-format 为模板,在本例中,它只是格式:型
这意味着 消失了:
型
流没有
#default-format
来第二次替换。turbo_stream.update
操作保留目标,只更新内容。型
型