0

我正在开发一个简单的房间预订演示应用程序,其中我有三个表作为成员类型、客户和捐助者

型号如下

class MemberType < ActiveRecord::Base
 has_one  :donor
 has_many :customers
 has_many :room_rates
 attr_accessible :member_type
end

class Customer < ActiveRecord::Base
  belongs_to :member_type 
  has_one  :donor
  has_many :rooms
  has_many :room_types
  has_many :room_rates
end

class Donor < ActiveRecord::Base
  belongs_to :customer
  belongs_to :member_type 
  attr_accessible :donation, :free_days, :used_days,:customer_id
end

当客户添加他们的基本信息并选择 member_type 作为捐赠者并提交它时,我已将 member_types 添加为捐赠者、来宾和另外两个作为管理员,并将所有信息存储在客户表中

客户提交信息时,如何在捐赠者表中添加此 customer_id?

4

1 回答 1

0

您可以在 Customer 模型中使用活动记录回调,如下所示:

class Customer< ActiveRecord::Base
  after_save :new_donor

  private 
  def new_donor
    new_record = Donor.new(:customer_id => self.id)
    new_record.save
  end

end

顺便说一句,您的模型设计中有一个闭环关系(room_rates 属于 member_type 和 customer),这不是表格设计中的最佳实践,尽管它也不是完全错误的。
如果可能,您可能需要重新设计它

于 2013-04-05T09:55:24.533 回答