У меня несколько отношений belongs_to
к одной и той же модели. Моделирование сообщений между двумя пользователями следующим образом (в модели 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
- есть ли более чистый/лучший способ сделать это?
Большое спасибо.