ActiveRecord belongs_to带有'或'语句

时间:2011-10-23 23:32:04

标签: ruby-on-rails-3 activerecord object-relationships

我有一个奇怪的系统,我正在开发的应用程序有一个本地数据库,但也连接到外部数据库的一些数据。

其中一个要求是,如果在外部数据库中找不到制造商,则在本地数据库中创建临时条目,直到可以更新外部数据库(不在我的控制之下,但通常在48小时内发生) 。

因此,我创建的是一个temp_manufacturer表,它将保留详细信息,直到将制造商添加到外部数据库。

工作正常,但产品属于制造商,除非制造商在外部数据库中,否则我无法添加产品。在我的产品型号中我有

class Product < ActiveRecord::Base
        validates_uniqueness_of :sku
        validates_presence_of :manufacturer 

    has_many :categories
    belongs_to :manufacturer 
end

当然,这里的问题是虽然我传递的是manufacturer_id,但manufacturer_id不在外部数据库的制造商表中。

我希望做的是像

validates_presence_of :manufacturer || :temp_manufacturer

belongs_to :manufacturer || :temp_manufacturer

但似乎不可能。

还有另一种'伪造'父母的方式&gt;像这样的孩子关系?

不幸的是,我无法从我的应用程序更新制造商表格,但我能够获得将用于新制造商的ID。

0 个答案:

没有答案