私はこのモデルを持っています: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_id
parent_kind
0
私のクイックフィックスはこれでした:
@store = Store.new(params[:store])
@store.addresses[0].parent_kind = 2
if @store.save
....
しかし、私は別の方法があるに違いないことを知っています。
何か提案はありますか?
ありがとう。