0

我有两个要尝试加入的资源 - 通过连接表 SubmittedPackage 进行打包和列表。我将 Ruby 1.9.3-p125 和 Rails 3.2.1 与 PostgreSQL 9.1.3 一起使用。模型如下所示。

class Package < ActiveRecord::Base
  has_many :submitted_packages
  has_many :listings, :through => :submitted_packages

class Listing < ActiveRecord::Base
  has_many :submitted_packages
  has_many :packages, :through => :submitted_packages

class SubmittedPackages < ActiveRecord::Base
  belongs_to :package
  belongs_to :listing

在 Rails 控制台中,我不断收到NameError: uninitialized constant Listing::SubmittedPackage

如果我用Drum替换SubmittedPackage资源,它将起作用(这当然包括创建适当的表等等)。

:submitted_pa​​ckages 是否与 Rails 或 ActiveRecord 中的某些内容冲突?

任何想法为什么这会破坏?

提前致谢!

更新:作为一种变通方法,我在列表和包模型中明确定义了 :class_name 的有很多关系。这至少让事情变得正常,但是,我仍然不清楚为什么有必要开始。什么 Rails 或 Ruby 命名约定被打破了:submitted_packages

class Package < ActiveRecord::Base
  has_many :submitted_packages, :class_name => 'SubmittedPackages'
  has_many :listings, :through => :submitted_packages

class Listing < ActiveRecord::Base
  has_many :submitted_packages, :class_name => 'SubmittedPackages'
  has_many :packages, :through => :submitted_packages

class SubmittedPackages < ActiveRecord::Base
  belongs_to :package
  belongs_to :listing
4

1 回答 1

1

如果 SubmittedPackage 是 JoinTable,我想它应该有很多列表,但我看到的只是很多包和很多提交的包。

高温高压

于 2012-05-04T23:32:04.063 回答