私が開発しているアプリにはローカル データベースがありますが、一部のデータのために外部データベースにも接続する、ちょっと変わったシステムがあります。
要件の 1 つは、メーカーが外部データベースに見つからない場合、外部データベースが更新されるまでローカル データベースに一時的なエントリを作成することでした (私の管理下ではありませんが、通常は 48 時間以内に更新されます)。
したがって、私が作成したのは、メーカーが外部データベースに追加されるまで詳細を保持する temp_manufacturer テーブルでした。
製品がメーカーに属していることを除いて、それは正常に機能し、メーカーが外部データベースに登録されるまで製品を追加できないようです。私の製品モデルでは
class Product < ActiveRecord::Base validates_uniqueness_of :sku validates_presence_of :manufacturer has_many :カテゴリ 所属先:メーカー 終わり
もちろん、ここでの問題は、manufacturer_id を渡していますが、manufacturer_id が外部データベースのメーカー テーブルにないことです。
私がやりたいと思っていたのは、次のようなものでした
validates_presence_of :manufacturer || :temp_manufacturer 所属先:メーカー || :temp_manufacturer
しかし、これは可能ではないようです。
このような親子関係を「偽造」する別の方法はありますか?
残念ながら、アプリからメーカー テーブルを更新することはできませんが、新しいメーカーに使用される ID を取得することはできます。