ruby-on-rails - Rails 4 - 更新多个表条目

标签 ruby-on-rails activerecord ruby-on-rails-4

我还剩下大约 25 件产品,表示为 product.stock = 25。假设我卖出了 5 件该特定产品。然后,我需要将其剩余库存条目更新为 25 - 5 = 20product.stock = Product.stock - buy.quantity

我将如何在我的应用程序中执行此操作。我可以将上面的代码放在 Controller 中的某个位置吗?

我有一个满足以下要求的采购表格:

  • 能够选择现有产品,检索产品的价格
  • 指定用户想要购买的数量
  • 显示总计以及选择购买的所有产品的总计

我不确定我在这里是否表达清楚,或者该主题是否与我的问题相关。

最佳答案

我会使用 ActiveRecord 的 decrement!方法:

product.decrement!(:stock, purchase.quantity)

如果购买模型是跟踪最终销售的模型,那么我会将此代码放入 ActiveRecord 回调中。例如:

class Purchase < ActiveRecord::Base
  belongs_to :product

  after_create :adjust_inventory

  def adjust_inventory
    product.decrement!(:stock, quantity)
  end
end

购买还应该有一个 before_save 验证,以确保有足够的库存来满足订单。

关于ruby-on-rails - Rails 4 - 更新多个表条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24557836/

相关文章:

android - 具有 Rails 后端的 Android/iOS 应用程序上的即时消息

ruby-on-rails - 如何将 Pry 输出转储到文件或 Vim?

ruby-on-rails - 如何在 Rails 3 中用 'hours:minutes:seconds' 显示时间?

ruby-on-rails - ActiveRecord - 基于 has_one 关联的 where 查询

ruby-on-rails - Rails 未定义的局部变量或方法 `line_item'

Rails 中带参数的 Jquery Ajax POST 请求 (Ruby on Rails)

ruby-on-rails - 将延迟回形针与 S3 直接上传结合使用

ruby-on-rails - 如果一条记录无效,Rails accepts_nested_attributes_for 不保存任何嵌套记录

ruby-on-rails - 使用 Mongoid 的 Rails 博客 - 在创建帖子时自动生成短 URL

ruby-on-rails - Rails 无法重置开发数据库