ruby-on-rails - Rails 3.1 before_create 回调在克隆模型后不会触发

标签 ruby-on-rails activerecord ruby-on-rails-3.1

我有一个模型。我想克隆它。
但是在我运行model.save之后!我的 before_create 回调没有被触发。
所以,我想知道有什么技巧可以让 rails 认为这个克隆对象实际上是新的。

谢谢

最佳答案

这是 Rails 3.1 中的预期行为。在事件记录上 CHANGELOG :

Calling ActiveRecord::Base#clone will result in a shallow copy of the record, including copying the frozen state. No callbacks will be called.



您可以使用 dup .它将运行 before_create打回来。

关于ruby-on-rails - Rails 3.1 before_create 回调在克隆模型后不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7046543/

相关文章:

ruby-on-rails - 为什么我的 bootstrap-sass 规则被用户代理规则覆盖?

html - Ruby On Rails Bootstrap 字形图标无法正常工作

mysql - Rails 3 ActiveRecord 从单个表中选择父子递归

security - "invalid %-encoding"和 "invalid byte sequence in UTF-8"错误正在急剧增加

mysql - 根据最近的子元素的属性选择父元素

php - 为什么 MYSQL 在与 int 值比较时将 NULL 或 String 值转换为 0?

ruby-on-rails - rails 复位单柱

ruby-on-rails - 使用mongodb ruby​​驱动连接rails API应用程序和mongodb时要修改哪个文件

ruby-on-rails - rails : where does the infamous "current_user" come from?

ruby-on-rails - Rails 承认关联,但不显示数据