2017-01-10 105 views
0

我在關注this tutorial以創建一些自定義標記。我的指示除了AJAX和基礎部分,因爲我沒有這樣建立我的網站。我遇到與「標記研究」的一部分的問題時,你只需要點擊標籤,查看有關標籤的所有帖子,Rails的告訴我下面的:標記系統創建出現問題

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

以下是改編自我的文件教程:

article.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 

tag.rb

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

tagging.rb

class Tagging < ApplicationRecord 
    belongs_to :article 
    belongs_to :tag 
end 

的config/routes.rb中

get 'tags/:tag', to: 'articles#index', as: "tag" 
resources :articles 

請詢問您是否需要看別的東西

正如你所看到的,我只是使用我開始教程時已經存在的'文章'模型,所以我使用'文章'而不是'文章' '如作者所問。我找不到任何與Google相關的任何內容,並且我現在不使用任何IDE,因此我不知道該怎麼做。#

歡迎任何幫助!

+0

在'標籤'模型中,將您的關聯'has_many:標籤,通過:: taggings'更改爲:'has_many:articles,through::taggings'並嘗試。你不應該面對問題。 – Deep

+0

謝謝你的工作!我知道這很明顯,但我找不到錯在哪裏 – Jaeger

回答

1

在您試圖關聯的Tag模型中tags僅表示您正在關聯自己。因此,改變你的公會

has_many :tags, through: :taggings 

到:

has_many :articles, through: :taggings 

和嘗試。你不應該面對問題。