ruby-on-rails - "Before Save"关联回调

标签 ruby-on-rails

保存父对象时,如何在关联上调用“before_save”回调?例如:

class Company < ActiveRecord::Base
  belongs_to :user

  before_save Proc.new { ... } # Not called.
end

class User < ActiveRecord::Base
  has_one :company

  before_save Proc.new { ... } # Gets called.
end

params = { 
  :user => { 
    :name => "Kevin Sylvestre", 
    :company_attributes => { :city => "Waterloo", :region => "Ontario" } 
  }
}

@user = User.new(params[:user])
@user.save

对用户调用“before_save”,而不是对公司调用。谢谢。

最佳答案

您可以使用此 patch将“touch”功能添加到 has_one 关联,或者只是在 User 模型中定义另一个 after_save 回调并在那里显式“touch” Company 实例。

关于ruby-on-rails - "Before Save"关联回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3090900/

相关文章:

ruby-on-rails - 使用 Rails 的新 recaptcha 的工作示例?

ruby-on-rails - 数组时间戳之间的时间差

ruby-on-rails - Rails RSpec 测试 : Undefined method 'deliver' for nil:NilClass

ruby-on-rails - View 中无法访问模型中的 Rails 方法

javascript - Id 选择器的格式很奇怪

ruby-on-rails - 为什么在 Gemfile 中包含一个 gem 可以解决 Railtie 问题,即使这个 gem 已经包含在 Gemfile.lock 中?

ruby-on-rails - 在一行代码中初始化和递增变量

ruby-on-rails - 是否有可以从闪存驱动器运行的独立 Ruby(和 Rails)解决方案?

ruby-on-rails - Rails-将哈希添加到redirect_to

ruby-on-rails - SQLite/Rails 日期时间查询问题