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_id
和 tag_id
。
我注意到您有 belongs_to :articles
...您应该使用单数 ... belongs_to :article
。这可能就是你失败的原因。前提是你...
generate model Tagging tag:references article:references
...正如教程所建议的那样,这会在标记 table.
中自动为您创建两个 id 字段
您可以通过检查 db/schema.rb
来确认
我正在开发 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_id
和 tag_id
。
我注意到您有 belongs_to :articles
...您应该使用单数 ... belongs_to :article
。这可能就是你失败的原因。前提是你...
generate model Tagging tag:references article:references
...正如教程所建议的那样,这会在标记 table.
中自动为您创建两个 id 字段您可以通过检查 db/schema.rb