11155
(-- --)
March 1, 2011, 8:44am
1
Hello,
I'd like to have the main menu of my web application dynamically
generated from categories stored in a database.
I created a partial for this menu:
(views/category/_list.html.erb)
<ul>
<% @categories.each do |category| %>
<li><%= category.name %></li>
<% end %>
</ul>
And I call this partial in the main layout:
(layouts/application.html.erb):
<%= render 'category/list' %>
Unfortunately, the @categories variable is Nil because the category/list
controller is not called with this method.
How can I simply achieve this ? Thank you,
Fabrice
In your application_controller put a before_filter that sets up
@categories . This will then be setup for all controllers and actions.
You might want to use a different name such as @categories_for_menu
or something so that it does not clash with other uses of the variable
@categories .
Colin
11155
(-- --)
March 1, 2011, 1:39pm
3
I'd also recommend you cache the results so every page is not making a
DB call every time.
Brian
11155
(-- --)
March 2, 2011, 8:52am
4
Thank you for your answer and your advice, that's what I was looking
for,
Sincerely,
Fabrice