belongs_to
同じモデルに対して複数の関係があります。次のように2人のユーザー間のメッセージをモデル化します(Message
モデル内):
belongs_to :to, :class_name => 'User', :foreign_key => 'to_id'
belongs_to :from, :class_name => 'User', :foreign_key => 'from_id'
attr_accessible :to, :from # ...
対応するhas_many
呼び出しはUser
モデルにあります。from_id
次の非推奨の警告(との両方to_id
)を除いて、すべてが仕様とコンソールで必要に応じて機能します。
DEPRECATION WARNING: You're trying to create an attribute `from_id'. Writing arbitrary attributes on a model is deprecated. Please just use `attr_writer`
関連する仕様は次のとおりです。
it "can associate users" do
User.delete(:all)
ufrom = FactoryGirl.create(:DrKevorkian)
ufrom.save!
uto = FactoryGirl.create(:JohnSmith)
uto.save!
m = Message.new
m.from = ufrom # <-- Warning here
m.to = uto # <-- Warning here
m.save
m.from.id.should == ufrom.id
m.to.id.should == uto.id
end
アソシエーションの結果として警告が発生しているように見えますbelongs_to
-これを行うためのよりクリーンでより良い方法はありますか?
どうもありがとう。