Javascript 控制器对Ajax请求的响应

Javascript 控制器对Ajax请求的响应,javascript,ruby-on-rails,ajax,Javascript,Ruby On Rails,Ajax,在产品索引页面中,我列出了所有产品的名称。我还有一个创建新产品的表单。当我提交表单时,我可以创建一个新产品,但是产品列表在我刷新页面之前不会得到更新 我将此作为参考: 产品指数: create.js.erb: 更新: 将format.js{}添加到respond_to之后,我可以在我的日志中看到它正在工作: 产品负载0.0ms从产品中选择产品。* 渲染产品/_products.html.erb 5.0ms 渲染产品/create.js.erb 9.0ms 但页面上仍然没有更新 我确信问题在于我的

在产品索引页面中,我列出了所有产品的名称。我还有一个创建新产品的表单。当我提交表单时,我可以创建一个新产品,但是产品列表在我刷新页面之前不会得到更新

我将此作为参考:

产品指数:

create.js.erb:

更新:

将format.js{}添加到respond_to之后,我可以在我的日志中看到它正在工作:

产品负载0.0ms从产品中选择产品。* 渲染产品/_products.html.erb 5.0ms 渲染产品/create.js.erb 9.0ms

但页面上仍然没有更新

我确信问题在于我的create.js.erb文件的内容:

$(".updated_products").html("<%= escape_javascript(render 'products') %>") ;
固定的:

在视图中,我将呈现部分产品的ul从更新的_product类更改为id。在create.js.erb文件中也更改了它

视图:

create.js.erb


尝试将respod_中的format.js{}添加到blockI我认为它可以工作,因为我可以在日志中看到ActionView模板错误。我已经用结果更新了帖子。谢谢你的帮助。你是使用js还是json格式的请求?控制器对html和json做出响应。如果是json,则成功创建呈现:show。如果js在controller中包含format.js,则不需要绑定ajax:success。@Alexei.B我正在使用js,只要我将该行添加到controller中,它就会开始工作。感谢您将respod_中的format.js{}添加到block中。我认为它可以工作,因为我可以在日志中看到ActionView模板错误。我已经用结果更新了帖子。谢谢你的帮助。你是使用js还是json格式的请求?控制器对html和json做出响应。如果是json,则成功创建呈现:show。如果js在controller中包含format.js,则不需要绑定ajax:success。@Alexei.B我正在使用js,只要我将该行添加到controller中,它就会开始工作。谢谢
<% @products.each do |product| %>
    <li><%= product.name %></li>
<% end %>
  def index
    @products = Product.all
    @product = Product.new
  end

  def create
    @product = Product.new(product_params)
    #@product = Product.new(params[:product])

    respond_to do |format|
      if @product.save
        format.html { redirect_to @product, notice: 'Product was successfully created.' }
        format.json { render :show, status: :created, location: @product }
      else
        format.html { render :new }
        format.json { render json: @product.errors, status: :unprocessable_entity }
      end
    end
  end
$("<%= escape_javascript(render 'products') %>").appendTo(".updated_products);
$(".updated_products").html("<%= escape_javascript(render 'products') %>") ;
<ul id="updated_products"><%= render 'products' %></ul>
$("#updated_products").html("<%= escape_javascript(render 'products') %>") ;