2016-09-08 7 views
0

私はRORにかなり新しいですし、カップルの他の同様の記事を試してみましたが、まだエラーを取得しています上のビューでテーブルを結合表示することができません。チケットインデックスコントローラでレール

class Ticket < ActiveRecord::Base 
    belongs_to :user 
    has_and_belongs_to_many :categories 
    has_many :ticket_categories 
    has_many :categories, through: :ticket_categories 
end 

class TicketCategory < ActiveRecord::Base 
    belongs_to :ticket 
    belongs_to :category 
end 

class Category < ActiveRecord::Base 
    has_many :ticket_categories 
    has_many :tickets, through: :ticket_categories 
end 

私が持っている:ビューで

def index 
    @tickets = Ticket.paginate(page: params[:page], per_page: 10) 
    @category = Category.paginate(page: params[:page], per_page: 10) 
end 

私が持っている:

<tbody> 
    <% @tickets.each do |ticket| %> 
    <tr> 
    <td><%= ticket.id %></td> 
    <td><%= ticket.title %></td> 
    <td><%= ticket.description %></td> 
    <td><%= ticket.created_at%></td> 
    <td> 
    <ul> 
     <% if @ticket.categories.any? %> 
     <%= @ticket.categories %> 
     <li><%= category.name %></li> 
     <% end %> 
     </ul> 
    </td> 

ビューで、私はこのエラー未定義のメソッドを持って 私はこのモデルを持っています'categories' for nil:NilClass
私は何か間違っていましたか?どんな提案も大歓迎です。

答えて

1

。したがってのcategoriesメソッド(nil)ではなく@ticketである必要があります。

<% if ticket.categories.any? %> 
    <% ticket.categories.each do |category| %> 
    <li><%= category.name %></li> 
    <% end %> 
<% end %> 

Iは、categoriesをループにコードを追加し、各categoryの名前が表示されています。

+0

私はそれを得ました。問題は解決しました。解決策:私はカテゴリの下に部分ファイルをレンダリングします。 – bendee74

+0

@ bendee74、私の答えを更新しました。これは役に立ちますか? –

+0

ソフトウェア アプリケーション [#<カテゴリID:1、名前: "ソフトウェア"、created_at: "2016-08-15 12:35:55"、updated_at: "2016- 0815 12:35:55 ">、#<カテゴリID:3、名前:"アプリケーション "、created_at:" 2016-08-15 12:36:52 "、updated_at:" 2016-08-15 12:36 :52 ">] – bendee74

1

それはする必要があります:あなたは、変数ticket@ticketsをループしている

<ul> 
    <% if ticket.categories.any? %> 
    <%= ticket.categories %> 
    <li><%= category.name %></li> 
    <% end %> 
</ul> 
+0

Tqの..中にエラー..新しいエラー - #<#<クラス:0x8959c20>:0xb1e14b0>未定義のローカル変数やメソッド 'カテゴリ」..私はそのcategory.name変数を定義します。.. ?? – bendee74