Rails不会添加带有ajax / jquery的新表行

时间:2018-04-19 19:16:06

标签: jquery ruby-on-rails ajax

我有一个奇怪的问题。

我使用ajax和jquery动态地向表添加行但是它没有添加任何内容但是在服务器日志中我有

Completed 200 OK in 23ms (Views: 5.3ms | ActiveRecord: 7.9ms)

并且回复中的内容是

$('.products-table tr:last').after('<tr>
  <td>Test</td>
  <td>1</td>
  <td>1.2</td>
  <td>1.2</td>
</tr>');

我试过了

$('.products-table').append('<tr>
  <td>Test</td>
  <td>1</td>
  <td>1.2</td>
  <td>1.2</td>
</tr>');

但它也不起作用。

我试图将其纳入此表

<div class="order-bar">
  <div class="order-bar-title">
    Order for table <%= @order.table %>
  </div>
    <div class="order-products-list">
    <table class="table table-hover table-condensed products-table">
      <tr>
        <td>Name</td><td>Quantity</td><td>Price</td> 
        <td>Total</td>
      </tr>
      <% if !@order.order_items.any? %>
        <% @order.order_items.each do |order_item| %>
          <%= render 'hall_tables/partials/product_line', :locals => { :order_item => order_item, :id => id }%>
        <% end %>
      <% end %>
    </table>
  </div>
</div>

这里是jquery代码 create.js

$('.products-table tr:last').after('<%= render "hall_tables/partials/product_line", :locals => { :item => @item }%>');

控制器

def create
  @order = Order.find(session[:order_id])
  @item = @order.order_items.new(item_params)
  @order.save
  respond_to do |format|
    format.html { }
    format.js { }
  end
end

1 个答案:

答案 0 :(得分:0)

我认为你有一个javascript错误,因为它没有被转义。请检查浏览器控制台。 你可以尝试:

$('.products-table tr:last').after('<%= j(render "hall_tables/partials/product_line", :locals => { :item => @item }) %>');

此外,请确保您具有创建视图的js.erb扩展名