2011-11-17 141 views
0

我有兩個model和product類,它們分別具有has_many和belongs_to關聯。現在,我想要做的是當我點擊特定類別時,我希望列出該類別的所有產品。如何做到這一點在Rails 3.1.1中將視圖傳遞給控制器​​的麻煩

這裏是我的看法

<p><%=link_to @product.category.name, show_by_category_products_path(@product.category.id)%> <%= @product.name%> <%[email protected]%><p> 

和方法在控制器

def show_by_category 
    @products = Product.where("category_id=?", :id) 
    end 

謝謝! (我知道它的簡單的東西,但有時你是盲目的,不能看到一種簡單的方式,所以你必須尋求別人的幫助)

編輯 好吧也許我想出了一種方法來解決這個..但我如果在正確的方式

做我不知道現在我的視圖和模型看起來像這樣

<p><%=link_to @product.category.name, show_by_category_product_path(id: @product.id)%> <%= @product.name%> 

def show_by_category 
@prod = Product.find(params[:id]) 
@products = Product.where('category_id=?', @prod.category_id) 
end 

告訴我,如果這是正確的方式?

+0

那麼問題是什麼?你有錯誤嗎? – pseudopeach

+0

您是否爲自定義操作添加了路線('show_by_category')?它可能應該像「會員」那樣; get:show_by_category;在你的'資源:產品做...結束'塊中結束。 – Frost

+0

是的,我添加了路線。我沒有獲得一系列產品。它的零。 –

回答

1

您的搜索結果應該更像Category.find(params[:id]).products。但請儘量遵循RESTful路由原則,並嵌套您的資源。 Rails將爲你做更多的事情。

+0

這有幫助。謝謝! –

相關問題