Rails在对象创建时设置has_one关系

时间:2016-10-08 08:44:42

标签: ruby-on-rails-4

我有一个拥有车辆的交易模型 交易模型belongs_to has_one vehicle的发件人。 在交易创建时我需要从卖家设置transaction.vehicle.vehicle这样做的最佳方法是什么?

before_save? before_create?

非常感谢你的帮助。

交易模式

  class Transaction < ActiveRecord::Base

     attr_accessor :sender_id, :receiver_id, :receiver_phone_number

     belongs_to :sender, class_name: 'User'
     belongs_to :receiver, class_name: 'User'

     has_one :vehicle
     [...]
   end

车型

class Vehicle < ActiveRecord::Base


  belongs_to :user
  belongs_to :wallet_to_wallet, class_name: 'Transaction', :foreign_key => :vehicle_id

  [...]
end

1 个答案:

答案 0 :(得分:1)

在事务模型中使用before_create

before_create :before_create_tasks
def before_create_tasks
   self.build_vehicle
end