2011-12-01 211 views
1

我開始on Rails的,現在我有一些問題,我不能打通,這裏有一個例子:鏈接路徑

我有一個表稱爲產品具有姓名,照片等,一張名爲review的表格,其名稱和product_id。每個產品可以有多個評論,每個評論只有一個產品。當我在索引頁上選擇一個產品時,它將我引導到顯示視圖,我將此鏈接放在那裏<%= link_to 'Reviews', review_path(@product)%>,它將我重定向到/reviews/1,它只顯示我的一個評論,並且我試圖顯示每個評論從產品1.

我有以下代碼嘗試捕獲產品中的所有評論。我如何才能在@review只有product_id=1的評論?

def show_prod 
    @review = Review.find(params[:product_id]) 
    respond_to do |format| 
    format.html # show.html.erb 
    format.json { render json: @review } 
    end 
end 

非常感謝,但我仍然得到同樣的錯誤

你有一個零對象時,你沒想到吧! 您可能已經預期了Array的一個實例。 評估nil時出現錯誤

這是從評論索引頁面,當我寫一個產品的所有評論。它看起來的一樣從控制器@reviews沒有得到任何產品和對象是零..

感謝所有幫助

+0

問題,只有誰on Rails的使用Ruby的人都聽命應被標記「的Ruby-on-軌道」,而不是「紅寶石」。如果你不確定你的問題是關於Ruby on Rails還是關於Ruby,那麼用兩個標籤標記它,然後有人會刪除不適用的標籤。 –

回答

1

首先,在routes.rb中

resources :products do 
    resources :reviews 
end 
創造下的產品嵌套在評價

鏈接到它的產品。

link_to "Reviews", product_reviews_path(@product) 

然後範圍的審查控制器的產品,這樣的:

class ReviewsController < ApplicationController 
    before_filter :load_product 

    def index 
    @reviews = @product.reviews 
    end 

    def show 
    @review = @product.reviews.find(params[:id]) 
    end 

    protected 

    def load_product 
    @product = Product.find(params[:product_id]) 
    end 
end 
+0

非常感謝,但我仍然得到相同的錯誤 你有沒有對象,當你沒有想到它!您可能預期了Array的一個實例。評估nil時出現錯誤。 這是從評論索引頁面,當我寫一個產品的所有評論。它似乎是從控制器的@reviews沒有得到任何產品和對象是零.. 感謝您的任何幫助 –