私はこのモデルを持っています:StoreとAddress。
これを他のモデルで使用している2番目のモデルAddressには、さまざまなモデル用のカスタムフィールドがいくつかあります。
はい、ポリモーフィックのようですがvarchar、クラスのフィールドがないため、整数を使用しています。(最適化のもの)
今私のStoreモデルでは、このようなセットの関連付け:
class Store < ActiveRecord::Base
has_many :addresses, :foreign_key => "parent_id", :conditions => ['parent_kind = ?', 2]
accepts_nested_attributes_for :addresses
end
今私のコントローラーで私はします:
@store.addresses.build
そしてf.fields_for :addresses...、フォーム内で使用できます。
フォームを送信してデータをデータベースに保存すると、問題が発生します。
storesテーブル内のレコードが保存され、のレコードはストアのが適切な場所に保存されaddressesますが、これはMySQLのその属性のデフォルト値です。parent_idparent_kind0
私のクイックフィックスはこれでした:
@store = Store.new(params[:store])
@store.addresses[0].parent_kind = 2
if @store.save
....
しかし、私は別の方法があるに違いないことを知っています。
何か提案はありますか?
ありがとう。