2009-08-18 3 views
0

У меня проблема с 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. Должен ли я создать маршрут для этого метода?

+1

Ummmm ... без каких-либо подробностей о платформе, языке, программном обеспечении и т. Д. ... как насчет да? –

+0

Извините, для меня недостаточно деталей, чтобы даже начать отвечать. Не могли бы вы добавить дополнительную информацию? –

+0

Что вы подразумеваете под «Я не хочу показывать их на страницах (маршрутах) по умолчанию»? Дайте код и попытайтесь объяснить свою проблему, потому что я этого не понимаю – klew

ответ

0

Вы должны использовать вложенные ресурсы:

map.resources :categories, :has_many => :products 

Это создаст маршруты, такие как/категорий/1/продукты, которые будут направлять запросы к контроллеру продуктов и указательным действия, где вы можете использовать Params [: category_id] в сделать правильный набор результатов.

Как вы экспериментируете с маршрутами, выполните маршруты рейка, чтобы увидеть результаты и посмотрите http://api.rubyonrails.org/classes/ActionController/Resources.html для более подробной информации.

Смежные вопросы