标签系统创建的问题

时间:2017-01-10 13:27:19

标签: ruby-on-rails model tags

我正在关注this tutorial来创建一些自定义标记。因为我没有以这种方式构建我的网站,所以除了AJAX和Foundation部分之外我的指示。我遇到了"标签研究的问题"部分当你只需要点击一个标签来查看关于标签的所有帖子时,Rails会告诉我以下内容:

$ git diff --name-only aeddbfdfa e05806da9

以下是我从教程改编的文件:

article.rb

undefined method `articles' for #<Tag:0x007f0a690eeb40>

tag.rb

class Article < ApplicationRecord

  mount_uploader :image, ArticleUploader
  extend FriendlyId
  friendly_id :titre, use: :slugged
  has_many :taggings
  has_many :tags, through: :taggings

  def all_tags=(names)
    self.tags = names.split(',').map do |name|
      Tag.where(name: name.strip).first_or_create!
    end
  end

  def all_tags
    self.tags.map(&:name).join(", ")
  end

  def self.tagged_with(name)
   Tag.find_by_name!(name).articles # Issue comes from here
  end

end

tagging.rb

class Tag < ApplicationRecord
  has_many :taggings
  has_many :tags, through: :taggings
end

配置/ routes.rb中

class Tagging < ApplicationRecord
  belongs_to :article
  belongs_to :tag
end

请询问您是否需要查看其他内容

正如您所看到的,我只是使用了我的文章&#39;在开始教程时已经存在的模型,所以我使用了&#39;文章&#39;而不是&#39;帖子&#39;正如作者所说。我无法在Google上找到任何相关内容,而且我现在没有使用任何IDE,所以我不知道该怎么做..

欢迎任何帮助!

1 个答案:

答案 0 :(得分:1)

Tag模型中,您尝试关联tags仅表示您正在关联自己。所以改变你的联想

has_many :tags, through: :taggings

到:

has_many :articles, through: :taggings

然后试试。你不应该面对问题。