【发布时间】:2015-04-22 14:47:46
【问题描述】:
我尝试在应用中设置多态关联,但是当我对其进行测试时,我似乎只能通过一种方式检索我的关联:
class Event < ActiveRecord::Base
has_many :category_associations, :as => :categorized
end
class CategoryAssociation < ActiveRecord::Base
belongs_to :categorized, :polymorphic => true
end
现在,在控制台中,我创建了一些 CategoryAssociations(一个是 @ca )和一个 Event ( @e )。 我可以这样做
@ca.categorized = @e
@ca.save
我的问题是,如果我加载我的事件并尝试@e.category_associations,我会得到一个空数组...但是当我尝试加载我的@ca 并执行@ca.categorized 时,我会得到我的事件!!
多态关联只是一种方式吗? 或者我错过了什么?
【问题讨论】:
-
你为什么不保存
@ca? -
对不起@tadman,你是对的,这是一个错字!我更正了,谢谢!
-
后续问题是
CategoryAssociation记录是否正确保存。请记住,始终查看log/development.log中生成的查询,看看它们是否有意义。 -
对,就是:我什至可以通过
CategoryAssociation.first.categorized获得Event! -
通常最好将这类东西放入模型测试中,这样您不仅可以立即验证功能,还可以在进行更改时继续验证。这也使得运行和重新运行代码以确保其正常工作变得容易。至于为什么它不生成查询,这似乎很奇怪。您使用的是当前版本的 Rails?
标签: ruby-on-rails ruby associations polymorphic-associations model-associations