私は現在User
というモデルのためにhas_many :addresses
というモデルを作成しています。これらのアドレスは、ユーザが出荷および郵送先住所を選択できる小さなアドレス帳を形成する。Railsでdefault_addressを設定するユーザモデル
私の質問は、のオブジェクトの1つにhas_many
という関係のタグをデフォルトのアドレスとしてタグ付けする最良の方法は何ですか? (私はこの権利を持っていると思います)、この関係を維持するだろう
一つの方法:
class User < ActiveRecord::Base
has_many :addresses, :dependent => :destroy
has_one :default_address, :class_name => "Address"
class Address < ActiveRecord::Base
belongs_to :user
belongs_to :user, :foreign_key :default_address_id
が、私は私のデフォルトのアドレスと私のユーザーの間で2つのリンクがありますように、そのは、ずさんなことを知っています。
アドレスにデフォルトのブール値を設定し、デフォルト値をscope
で設定する必要がありますか? (これは、複数のデフォルトアドレスを必要としないので、追加の検証を追加します)。
これはアドレス管理のあるアプリケーションではかなり頻繁に発生するはずなので、ただ聞いてください。ベストプラクティスに関する推奨事項は非常に高く評価されます。
マイク、これはすばらしいです、ありがとうございます。 –