2017-04-20 5 views
1

tag/show.html.erbの以下のように、多対多関係テーブル(Tag-Service-Category)からデータを取得したいと考えています。多くのテーブルからデータを取得したい

class Tag < ActiveRecord::Base 
    has_many :service_tags 
    has_many :services, through: :service_tags 
end 

class ServiceTag < ActiveRecord::Base 
    belongs_to :service 
    belongs_to :tag 
end 
class Service < ActiveRecord::Base 
    has_many :service_tags 
    has_many :tags, through: :service_tags 
    has_many :service_categories 
    has_many :categories, through: :service_categories 
end 
class ServiceCategory < ActiveRecord::Base 
    belongs_to :service 
    belongs_to :category 
end 
class Category < ActiveRecord::Base 
    has_many :service_categories 
    has_many :services, through: :service_categories 
end 

私はこのようなコードを書いていますが、動作しません。 @tag = Tag.find(のparams [:ID])あなたは正しいデシベル関係を持っていますが

<% @tag.services.each do |service| %> 
<% service.categories.each do |category| %> 
     <span class="category" class="<%= category.id %>"><%= category.name %></span> 
     <% end %> 
<% end %> 

コントローラ/ tags_controller.rb

class TagsController < ApplicationController 
    def show 
     @tag = Tag.find(params[:id]) 
     @tags = Tag.all 
    end 
end 
+0

コントローラを追加できますか? –

+0

ご協力いただきありがとうございます!うん – Dan

+0

あなたはそれがうまくいかないことを意味しますか?エラーがありますか、何も表示されません。 –

答えて

0

は、あなたはまだ出て呼び出す必要があります接続モデル。二重の多対多の関係をしているので、中間の配列を作成する必要があります。

<% services_array = [] %> 
<% @tag.service_tags each do |service_tag| %> 
    <% services_array << service_tag.service %> 
<% end %> 
<% services_array.each do |service| %> 
    <span class="category"> 
    <%= service.service_category.category.id %> 
    <%= service.service_category.category.name %> 
    </span> 
<% end %> 
+0

ありがとうございました!私はあなたを試しましたが、私はservice_categoriesを取得できません... NoMethodError:# Dan

+0

のための未定義メソッド 'service_categories '問題ありません。私は間違いをした。私はちょうど答えを更新しました。うまくいけば、カテゴリIDと名前を出力することを望みます。私はクラスを離れているように見えるので、クラスを外しましたが、その部分を構成することができます。 –

+0

助けてくださってありがとうございます。うーん...もう一度やりましたが、未定義の方法があります。 ActionView :: Template :: Error:未定義メソッド 'service_category 'for nil:NilClass tags_controller.rbに間違いがありますか? – Dan

関連する問題