首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >has_many_polymorphs问题

has_many_polymorphs问题
EN

Stack Overflow用户
提问于 2010-05-06 04:27:33
回答 1查看 367关注 0票数 1

我对has_many_polymorphs有意见,也许你能帮我。

我有一些模型

代码语言:javascript
复制
class Issue < ActiveRecord::Base
  has_many_polymorphs :things, :from => [:applications], :through => :relations
ene

class NewsArticle < ActiveRecord::Base
  has_many_polymorphs :things, :from => [:applications], :through => :relations
end

class Application < ActiveRecord::Base
  has_many_polymorphs :contents, :from => [:news_articles, :issues], :through => :relations
end  

class Relation < ActiveRecord::Base
  belongs_to :content, :polymorphic => true
  belongs_to :thing, :polymorphic => true

  acts_as_double_polymorphic_join(
   :contents => [:news_articles, :issues],
   :things => [:applications]
  )
end

但在尝试为某些问题获取应用程序时,我看到了以下内容

代码语言:javascript
复制
>> i = Issue.first
+----+--------+---------+----------+---------------+----------------+-------------+-------------+-----------------+---------------------------+---------------------------+
| id | closed | user_id | answered | answers_count | comments_count | views_count | flags_count | favorites_count | created_at                | updated_at                |
+----+--------+---------+----------+---------------+----------------+-------------+-------------+-----------------+---------------------------+---------------------------+
| 1  | false  | 2       |          | 2             | 2              | 0           | 0           | 0               | 2010-04-22 00:14:56 +0400 | 2010-05-01 02:35:30 +0400 |
+----+--------+---------+----------+---------------+----------------+-------------+-------------+-----------------+---------------------------+---------------------------+
1 row in set
>> i.applications
ActiveRecord::HasManyThroughSourceAssociationNotFoundError: Could not find the source association(s) :application in model Relation.  Try 'has_many :applications, :through => :relation, :source => <name>'.  Is it one of :content or :thing?
        from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/reflection.rb:289:in `check_validity!'
        from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations/has_many_through_association.rb:5:in `initialize'
        from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations.rb:1300:in `new'
        from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations.rb:1300:in `applications'
        from (irb):2
        from :0
>> 

在日志中我看到

代码语言:javascript
复制
** has_many_polymorphs: autoload hook invoked
** has_many_polymorphs: preloading parent model Application
** has_many_polymorphs: preloading parent model Issue
** has_many_polymorphs: preloading parent model NewsArticle
** has_many_polymorphs: preloading parent model Relation
** has_many_polymorphs: autoload hook invoked
** has_many_polymorphs: preloading parent model Application
** has_many_polymorphs: preloading parent model Issue
** has_many_polymorphs: preloading parent model NewsArticle
** has_many_polymorphs: preloading parent model Relation
  Issue Load (0.9ms)   SELECT * FROM "issues" LIMIT 1

如何解决?

PS: Rails 2.3.5、Postgresql

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-06 16:37:43

我已经做了这个问题:)问题是-文档不包含信息,连接的模型(在这个问题中-问题,NewsArticle,应用程序)不应该包含任何关于关系的东西(像has_many_polymorphs :things,:from => :applications,:通过=> :relation)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2776544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档