before_create 仍然保存

2023-12-04

在一切之前我要感谢你的帮助

我有一个这样的模型:

  attr_protected nil
  belongs_to :product
  belongs_to :user
  before_create :add_ammount

  def carted_product_price(ammount, price)
    ammount * price
  end

  def add_ammount
    carted_product = CartedProduct.where(:product_id => self.product_id, :user_id => self.user_id)
    if carted_product
      carted_product.first.ammount += self.ammount
      carted_product.first.update_attributes(:ammount => carted_product.first.ammount)
    else
      self.save
    end
  end

它将采购订单保存在一个名为 Carted_Products 的表中,该表连接到下面的用户和产品

问题是当创建前执行我希望它更新表中的记录,如果记录已存在,则添加控制器传递的金额,如果不存在,则创建一个,就 iv 完成而言,它会更新金额,但仍然使用传递的参数创建一个新的记录按照顺序,我希望它只更新,而不是在找到记录时执行这两个操作

谢谢你的耐心

EDIT:

尝试在更新属性后返回 false,它取消过滤器,并且不创建或更新属性


Return false in the before_create过滤器以防止对象被保存。add_amount不负责保存对象,并且不应调用save通过它自己。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

before_create 仍然保存 的相关文章

随机推荐

  • main函数可以重载吗?

    两个有效版本main 存在于C int main version 1 int main int argc char argv version 2 但两种过载不能同时共存 为什么不 潜在用例 从终端运行程序时 如果没有传递参数 则调用第一个版
  • Google Analytics 和 __utm.gif 文件

    当使用 Google Analytics 并使用较新的 ga js 文件时 您网站的根目录中是否需要 utm gif 文件 我确实看到我的浏览器对 google analytics com 上的文件进行了调用 http www google
  • 为什么在哈希映射中查找项目比在数组中查找项目更快?

    您可能在某个地方提到过在 hashmap dictionary table 中查找元素比在 list array 中查找元素更快 我的问题是为什么 到目前为止我做出的推论 为什么它应该更快 据我所知 在这两种数据结构中 它必须遍历直到到达所
  • 多个模板匹配仅检测到一个匹配项

    我正在尝试匹配这张图片 在这张图片中 然而 我找不到超过一个的头目敌人 我需要做什么才能找到其他人 图片加载 struct XYposition float X float Y std vector
  • 如何使用 jQuery 获取 HTTP 状态代码?

    我想检查页面是否返回状态代码401 这可能吗 这是我的尝试 但它只返回 0 ajax url http my ip test test php data complete function xhr statusText alert xhr
  • 在 PHP 中,可以在同一行实例化一个对象并调用一个方法吗?

    我想做的是这样的 method result new Obj gt method 而不必这样做 obj new Obj method result obj gt method 在我的具体情况下 结果实际上对我来说并不重要 但是 有办法做到这
  • 计算属于某个类别及其子类别的所有帖子

    我非常感谢对我的问题的帮助 我有 2 个 MySQL 表 类别和帖子 布局 简化 如下 类别 CATID 名称 Parent id posts PID 名称 类别 我想做的是获取每个类别的帖子总数 包括子类别中的所有帖子 现在 我通过执行以
  • 如何在 iOS 中的小键盘上添加“完成”按钮

    因此 小键盘默认情况下没有 完成 或 下一步 按钮 因此我想添加一个 在 iOS 6 及更低版本中 有一些向键盘添加按钮的技巧 但它们似乎在 iOS 7 中不起作用 首先我订阅显示通知的键盘 NSNotificationCenter def
  • Selenium 不会刷新 Jenkins 上的页面

    我有一个测试用例是这样的 打开主页 如果没有内容 刷新页面 继续其他步骤 这是代码的相关部分 public JpoPO driver get Settings JPO TEST URL PageFactory initElements dr
  • 信息窗口的替代品

    谷歌地图信息窗口的缺点之一是地图会移动 为信息窗口的显示腾出空间 冒泡 http econym org uk gmap ebuble html 克服了这个限制 它不会移动地图 然而 它有其自身的局限性 由于它的工作方式 您不能像信息窗口一样
  • CDI ConversationScoped 长时间运行的 Bean 不工作

    我在理解 Weld 或 CDI 的对话范围时遇到一些问题 在我的 JSF Faclets 页面中 我调用
  • 我从未见过的MySQL连接错误

    新的mysql错误 ERROR 42000 MySQL ODBC 3 51 Driver mysqld 5 5 9 You have an error in your SQL syntax check the manual that cor
  • 当 Angular 中的路线发生变化时结束可观察间隔

    我在 Angular 组件中启动一个间隔 但即使在我更改路线后它仍然会发出请求 如何停止间隔 returns an observable getAllPolls return Observable interval 2000 switchM
  • Snow Leopard 新的“突然终止”机制有缺点吗?

    Snow Leopard 有一项我从未听说过的新技术 突然终止 见突然终止 in 这个苹果文档 显然是一种告诉系统何时可以残酷地杀死您的应用程序的机制 而不是通过标准的退出机制 这应该有助于更快地注销 断电 休眠 首先 我不知道它 没有看到
  • WP7 / Silverlight]在列表框中绑定远程图像,这样UI就不会阻塞

    场景 Windows Phone 7 Silverlight 我有一个 ListBox 我将其简化为以下 XAML
  • Swift:使用 UISearchController/Predicates 过滤结构数组

    想知道是否有人可以帮助我在 Swift 中使用谓词进行过滤 我有一个有点混乱的数据源 我用它来填充 UITableView 数据源是一个结构体数组 该结构体定义如下 struct Exercises let category String
  • Azure 搜索突出显示带双引号的短语

    我们有一个天蓝色的Web应用程序 其中有一个搜索框 当我们输入带双引号的文本 例如 应用程序服务 时 它会正确列出带有 应 用程序服务 的记录 但它不仅突出显示 应用程序服务 而且还突出显示 应用程序服务 以及 服务 如果单独找到它们 可以
  • Docker 容器(不是 Docker 镜像)可以移动吗?

    我在以下网站上找到了此信息Docker 网站 Docker 容器可以运行 启动 停止 移动和删除 据我所知 Docker Images 可以移动 而 Docker Containers 则不能 但上面的信息明显位于 Docker 容器 标题
  • 错误的欧几里得距离 H2O 计算 R

    我使用 H2O 和 R 来计算 2 个 data frames 之间的欧几里德距离 set seed 121 create the data df1 lt data frame matrix rnorm 1000 ncol 10 df2 l
  • before_create 仍然保存

    在一切之前我要感谢你的帮助 我有一个这样的模型 attr protected nil belongs to product belongs to user before create add ammount def carted produ