javascript - 在 ruby on rails 中使用 Ajax 增加模型中的列
问题描述
我是 Rails 新手,在我的 rails 应用程序中为销售模型增加整数列(数量)时遇到问题。用户可以使用以下按钮增加应用程序中产品的数量:
销售/show.html.erb
<tbody>
<% @ven_pros.each {|s| %>
<tr>
<td><%= link_to ' + ', "/sale_products/#{params[:id]}/increment/#{s.id};", class: "btn btn-md btn-primary" %></td>
</tr>
<% } %>
</tbody>
这是我的路线
路线.rb
get 'sale_products/:id/increment/:product_id' , to: 'sale_products#increment'
这是我的递增动作
sale_products_controller.rb
def increment
@pro = SaleProduct.find(params[:product_id])
@pro.increment!(:quantity)
@pro.save!
respond_to do |format|
format.html { redirect_to sale_url(params[:id]), notice: 'Quantity was successfully increment.' }
format.json { head :no_content }
end
end
这对我有用,但是每次用户想要增加数量时都会加载页面
我怎么不能使用 ajax/javascript
解决方案
另一种方法是进行远程调用
<%= link_to ' + ', "/sale_products/#{params[:id]}/increment/#{s.id};", class: "btn btn-md btn-primary", remote: true %>
然后在您的增量方法中的控制器中:
def increment
@pro = SaleProduct.find(params[:product_id])
@pro.increment!(:quantity)
end
创建一个文件来处理jquery,它应该与方法同名。
文件将是:
increment.js.erb
该文件的内容:
$('.quantity-updated').html('<%= @pro.quantity %>');
你完成了
推荐阅读
- android - onTouch:在不阻塞其他触摸事件的情况下检测 ACTION_UP
- git - git subtree 命令将文件添加到父树
- rust - 如何在 Rust 中将 read_line() 的结果作为字符串获取?
- sql - 将多个简单查询转换为一个?
- docker - 将 docker 容器持续交付到 Google Cloud
- basic - Visual Basic 创建循环以计算偶数
- javascript - 使用键盘后 InsertText 功能不起作用
- python - Google Cloud Datastore Emulator 不使用默认凭据
- c++ - 应该翻转数字的程序的输出不正确
- amazon-web-services - ECS容器代理docker容器日志如何处理?