在新的页面中显示产品
问题描述:
我在Rails中遇到了问题,我想在每个类别中的产品显示在单独的页面上,当用户点击正确的链接时,类别和产品具有HABTM关系,我可以看到结果但我不想在默认页面(路线)中显示它们。我应该创建一个新的路线规则,或者这可以在控制器和视图中实现而无需编辑路线?在新的页面中显示产品
这是类别show.html.erb代码:
<h3><%=h @category.name %></h3>
<div id="category_desc">
<%=h truncate(@category.description.gsub(/<.*?>/,''),80) %>
</div>
<div id="categories_edit_nav">
<%= link_to "Edit" , edit_category_path(@category) %>
<%= link_to "Remove" , category_path(@category) , :confirm => "Are you really want to delete #{@category.name} ?" , :method => "delete" %>
</div>
<div id="category_nav">
<%= link_to "Create a new Category" , new_category_path %>
</div>
在这里,我可以创建类别控制器等的方法:
def show_products
@products_in_category = @category.products.find(:all)
end
而且在显示视图中使用它,但我想在另一个视图中使用它,如show_products。我应该为此方法创建路线吗?
答
你应该使用嵌套的资源:
map.resources :categories, :has_many => :products
这将创建一个途径,如/分类/ 1 /产品,将直接查询到产品的控制器和索引操作,您可以使用PARAMS [:CATEGORY_ID]到呈现正确的结果集。
在试验路线时,请运行耙路线以查看结果,并参阅http://api.rubyonrails.org/classes/ActionController/Resources.html了解更多详细信息。
嗯...没有任何关于平台,语言,软件等的细节...怎么样是的? – 2009-08-18 18:55:26
对不起,我没有足够的细节甚至开始回答。你能否提供更多信息? – 2009-08-18 18:55:34
你是什么意思的“我不想让他们在默认页面(路线)”?给一些代码并尝试解释你的问题,因为我不明白 – klew 2009-08-18 19:05:48