我正在尝试创建一个带有turbo_stream格式请求的表单。这是我的表格
<%= form_with url: search_stock_path(format: :turbo_stream), data:{ method: :get, turbo: true}, method: :get, turbo: true do |f| %>
<div class="form-group row">
<div class="col-sm-9 no-r-padding">
<%= text_field_tag :stock, params[:stock], placeholder:"Stock ticker symbol", autofocus: true, class:"form-control form-control-lg", required: true%>
</div>
<div class="col-sm-3 no-l-padding">
<%= button_tag class: "btn btn-success" do %>
<%= fa_icon 'search 2x' %>
<% end %>
</div>
</div>
<% end %>
<%= content_tag :div, id: dom_id(@stock) do %>
heloooooo
<% end %>
我的控制器
def search_stock
if params[:stock].present?
@stock = Stock.new_lookup params[:stock]
if @stock
respond_to do |format|
format.turbo_stream { render turbo_stream: turbo_stream.remove(dom_id(@stock))}
end
else
flash[:alert] = 'Please enter a valid symbol'
redirect_to my_portfolio_path
end
else
flash[:alert] = 'Please enter a symbol'
redirect_to my_portfolio_path
end
end
当我提交操作时,我得到的响应是一个重定向,而不是删除
<%= content_tag :div, id: dom_id(@stock) do %>
heloooooo
<% end %>
1条答案
按热度按时间tkclm6bt1#
你不能将turbo流格式附加到一个url上,并将其用作你的示例。
在旧版本的turbo中,您根本无法使用表单执行此操作,请参阅:
https://github.com/hotwired/turbo/pull/612
显然,如果您升级到
turbo-rails
1.3
并使用data: { turbo_stream: true }
,则现在可以使用此功能请注意,您可能还需要更新package.json以使用turbo-rails 7.3。