2013-08-30 64 views
2

類別/ show.html.erb滑軌:未定義的方法`模型名稱 '的Fixnum對象:類

<body class="home"> 
<% @category.subcategories.each do |subcategory| %> 
    <%= link_to subcategory.name, subcategory.id %> 
<% end %> 

拋出 NoMethodError在類別#表明 未定義的方法`模型名稱' 的Fixnum對象:類

的網址是http://example.com:3000/category/11

的routes.rb

FirstApp::Application.routes.draw do 
    root 'category#index' 
    resources :category 
end 

類別控制器

class CategoryController < ApplicationController 

    def index 
    @categories = Category.all 
    end  

    def new 
    end 

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

子目錄控制器是空

class SubcategoryController < ApplicationController 

    def create 
    end 

    def new 
    end 

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

的方法category.subcategories工作在控制檯。我可能錯過了一些明顯的東西。

+0

那麼你的關係看起來像你的模型? – roninblade

回答

3

試試這個:

<%= link_to subcategory.name, subcategory %> 

當您通過subcategory.id作爲第二個參數給這種方法,Rails的嘗試猜測從Fixnum你所經歷的路徑。由於這是不可能的,所以會出現錯誤。

您還應該添加

resources :subcategories 

您的routes.rb和重命名你的SubcategoryControllerSubcategoriesController

SubcategoriesController#show應該是:

@subcategory = Subcategory.find(params[:id]) 
+0

@darioshanghai你搞砸了一點點。 ;)我編輯了我的答案。 –

+0

您的編輯幫助,我的命名慣例都是錯誤的。謝謝 :) – darioshanghai

0

請你試試這個

<% @category.subcategories.each do |subcategory| %> 
    <%= link_to subcategory.name, subcategory_path(subcategory) %> 
<% end %> 

,並在控制器希望你有一個模型子類別與category

def show 
    @category = SubCateogry.find params[:id] 
end 

many to many關係在路線

resources :subcategories 
0

變化

<%= link_to subcategory.name, subcategory.id %> 

<%= link_to subcategory.name, subcategory %> 
相關問題