ActiveRecord::UnknownAttributeError: unknown attribute 'article_id' for Tagging

ActiveRecord::UnknownAttributeError: unknown attribute 'article_id' for Tagging

我正在开发 Blogger Rails 来自第 I3 部分的应用程序:

http://tutorials.jumpstartlab.com/projects/blogger.html#blogger-2

我在 运行 连接控制台并尝试 运行:

时遇到错误
a.tags.create name: "tag1"

我运行之后:

a = Article.first

tagging.rb 文件:

class Tagging < ActiveRecord::Base
  belongs_to :tag
  belongs_to :articles
end

article.rb 文件:

class Article < ActiveRecord::Base
  has_many :comments
  has_many :taggings
  has_many :tags, through: :taggings
end

tag.rb 文件:

class Tag < ActiveRecord::Base
  has_many :taggings
  has_many :articles, through: :taggings
end

我尝试将 has_many :article_id 添加到标记 class 中,再次对 db:migration 和 运行 进行了倾斜,但它返回了 nill [=47 的无方法=]错误。

我应该在哪里定义article_id?是否需要进入 CreateTagging 的迁移文件?

tagging.rb 文件是您的加入文件,您在其中定义了 article_idtag_id

我注意到您有 belongs_to :articles ...您应该使用单数 ... belongs_to :article。这可能就是你失败的原因。前提是你...

generate model Tagging tag:references article:references

...正如教程所建议的那样,这会在标记 table.

中自动为您创建两个 id 字段

您可以通过检查 db/schema.rb

来确认