Create a menu out from database entries

Hi

I am starting to work with rails and like to build a very basic cms.

I was using scaffolding. Page title:string permalink:string body:text.

What I like to do is create a menu out of the database entries permalink. Those should link to the fitting pages.

So i modified my index.html.erb from the pages view like this:

<% @pages.each do |page| %>     <%= link_to_unless_current page.permalink, page_path(page) %> <% end %>

I like to use something like the code above in a div layer as a menu and link the result to the div layer were the <% yield %> is placed.

I was trying to do this with helper module and also with partials, but I couldnt solve this. Do I need ajax? or is there a way to do it with rails only?

Maybe someone has a good tip?

Best regards

dlc

In ./app/helpers/application_helper.rb:

  def tab_for(name, href, html_options = {} )     #puts 'tab', @current_tab.to_s, 'href', href.to_s     if @current_tab.to_s.starts_with?(href.to_s.downcase)       #content_tag :span, name, html_options       html_options.merge!(:class => 'active')       link_to name, href, html_options     else       link_to name, href, html_options     end   end

In the view layout:

<ul id="mnav">   <li><%= tab_for 'Directories', directories_path %></li>   <li><%= tab_for 'Software', softwares_path %></li> </ul>

The tab_for function does a match on the request path to determine if its active or not...works well for single level menus, but would need modification to support sub menus.

Hi,

thanks a lot. I try to work that out.

Best

Daniel

Actually got a good bit of code for this done.

1. Scan a available controllers, and add table entries for any "new" ones automatically 2. If updates, generate new tabnav menus automatically at startup.

I use widgets for my menu, and do nesting to multiple levels. Since I tend to use namespaces as well for different major functions, a lot of "assumptions" can be made based on controller location and name. The nice thing is you can then "edit" the table, and regenerate the tabnav menu.

If your interested, shout, I'll go dig up the code.

I use ActiveScaffold, and Widgets/Tabnav for my sites. On top of that, I use some ruby code to glue it to a database table.

Hi,

glennswest wrote>

Actually got a good bit of code for this done.

1. Scan a available controllers, and add table entries for any "new" ones automatically 2. If updates, generate new tabnav menus automatically at startup.

Sounds like a good candidate for a plugin! Let us know if you go there.

Best regards, Bill