gpt4 book ai didi

ruby-on-rails-3 - 不推荐在模型上写入任意属性。 (模型上有多个belongs_to)

转载 作者:行者123 更新时间:2023-12-03 07:04:58 25 4
gpt4 key购买 nike

我与同一模型有多个 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_idto_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 关联而发生的 - 有没有更干净/更好的方法来做到这一点?

非常感谢。

最佳答案

我的经验是,如果您在更改架构后忘记运行 rake db:migraterake db:test:prepare,您会收到此警告。

关于ruby-on-rails-3 - 不推荐在模型上写入任意属性。 (模型上有多个belongs_to),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12395236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com