Ruby 在Rails 3.1.1中将值从视图传递到控制器时出现故障

Ruby 在Rails 3.1.1中将值从视图传递到控制器时出现故障,ruby,ruby-on-rails-3.1,Ruby,Ruby On Rails 3.1,我有两个模型产品和类别,它们有很多,分别属于协会。现在,我想做的是,当我点击特定类别时,我希望该类别的所有产品都能被列出。我该怎么做 这是我的看法 <p><%=link_to @product.category.name, show_by_category_products_path(@product.category.id)%> <%= @product.name%> <%=@product.category.id%><p> 谢谢

我有两个模型产品和类别,它们有很多,分别属于协会。现在,我想做的是,当我点击特定类别时,我希望该类别的所有产品都能被列出。我该怎么做

这是我的看法

 <p><%=link_to @product.category.name, show_by_category_products_path(@product.category.id)%> <%= @product.name%> <%=@product.category.id%><p>
谢谢!(我知道这很简单,但有时你会失明,看不到直截了当的方法,所以你必须寻求他人的帮助)

编辑 好吧,也许我找到了解决这个问题的办法。。但我不确定这样做是否正确

现在我的视图和模型看起来像这样

<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

def按类别显示
@prod=Product.find(参数[:id])
@产品=产品。其中('category\u id=?',@prod.category\u id)
结束

告诉我这是不是正确的方法?

我建议您至少阅读一下指南,因为您做得不对。

您的查找应该更像
Category.find(params[:id]).products
。但是试着遵循RESTful路由原则,并嵌套您的资源。Rails将为您提供更多功能。

那么问题出在哪里?您是否收到错误?是否为自定义操作添加了路由(
show\u by\u category
)?它可能应该类似于
成员do;获取:按类别显示;在您的
资源中结束
:产品不。。。结束
block。是,我添加了路线。我没有得到一系列的产品。零。
<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