2014-01-26 3 views
0

Я искал по всему Интернету ответ на этот вопрос в течение последних трех часов, поэтому я собираюсь задать вопрос. Я пытаюсь создать базовое программное обеспечение для форума, но у меня возникают проблемы с моими отношениями. Это ошибка, я получаюRails 4 Ассоциации: неопределенный метод

undefined method `forums' for # <ActiveRecord::Relation::ActiveRecord_Relation_Category:0x3706cb0> 

мой категории/индексный файл

<% for category in @category %> 
      <div class="panel panel-success"> 
       <div class="panel-heading"> 
       <h3 class="panel-title"><%= link_to category.name, category_path(category.id) %></h3> 
       <h4><%= category.description %> </h4> 
       </div> 
       <% for forum in @category.forums %> 
        <div class="panel-body"> 
        <h4><span class="glyphicon glyphicon-tree-conifer"></span><%= link_to forum.name, forum_path(forum.id) %> </h4> 
        </div> 
        <hr /> 
       <% end %> 
      </div> 
      <% end %> 

Категории Контроллер

class CategoriesController < ApplicationController 

     def index 
     @category = Category.all 
     end 

     def show 
     @category = Category.find(params[:id]) 
     end 

end 

форум контроллер

class ForumsController < ApplicationController 

    def show 
    @forum = Forum.find(params[:id]) 
    end 
end 

категория модели

class Category < ActiveRecord::Base 
    has_many :forums, dependent: :destroy 
end 

форум модель

class Forum < ActiveRecord::Base 
    belongs_to :category 
    has_many :threads, dependent: :destroy 
end 

и мои маршруты

ForumName::Application.routes.draw do 
    root 'static_pages#home' 

    resources :users 
    resources :sessions, only: [:new, :create, :destroy] 
    resources :categories, :path => "forum" 
    resources :forums 
    resources :topics 
    resources :posts 

    match '/signup', to: 'users#new',   via: 'get' 
    match '/signin', to: 'sessions#new',  via: 'get' 
    match '/signout', to: 'sessions#destroy', via: 'delete' 

end 

Надеюсь, я предоставил достаточно информации, если что-нибудь еще требуется, я буду обновлять этот пост. Обычно я могу работать с этим, используя Google, но это действительно меня озадачивает. Спасибо заранее.

ответ

0

Проблема в действии CategoriesController # индекс

Должен быть изменен на @categories = Category.all

потому что Category.all рассчитывает получить несколько категорий, а не один

Кроме того, вы должны изменить категории/индексный файл

<% for category in @categories %> 
     <div class="panel panel-success"> 
      <div class="panel-heading"> 
      <h3 class="panel-title"><%= link_to category.name, category_path(category.id) %></h3> 
      <h4><%= category.description %> </h4> 
      </div> 
      <% for forum in category.forums %> 
       <div class="panel-body"> 
       <h4><span class="glyphicon glyphicon-tree-conifer"></span><%= link_to forum.name, forum_path(forum.id) %> </h4> 
       </div> 
       <hr /> 
      <% end %> 
     </div> 
     <% end %> 
+0

Большое вам спасибо! Я использовал категории в своем контроллере, прежде чем не знаю, почему я его изменил. Так что моя проблема все время писала @ category.forums. –

Смежные вопросы