ruby-on-rails 刷新部分时,Turbo Stream Form不工作

w1jd8yoj  于 2023-06-07  发布在  Ruby
关注(0)|答案(1)|浏览(165)

我正在尝试创建一个带有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 %>

tkclm6bt

tkclm6bt1#

你不能将turbo流格式附加到一个url上,并将其用作你的示例。
在旧版本的turbo中,您根本无法使用表单执行此操作,请参阅:
https://github.com/hotwired/turbo/pull/612
显然,如果您升级到turbo-rails1.3并使用data: { turbo_stream: true },则现在可以使用此功能
请注意,您可能还需要更新package.json以使用turbo-rails 7.3。

相关问题