Lolita Menu

Create, sort and publish menus with Lolita.

Instalation

In your project Gemfile put

gem 'lolita-menu'

And run

bundle install

Like with other Lolita gems call

rails g lolita:menu:install

Since this gem comes with migrations

rake db:migrate

Creating menu

To create Menu it’s a good practise to do in your ‘db/seeds.rb`

menu = Menu.find_or_initialize_by_system_name('main_menu')
if menu.new_record?
  categories_menu.name = 'Main menu'
  categories_menu.save!
  [ 
    ['News', '/news'],
    ['Galleries', '/galleries'],
    ['About', '/about']
  ].each do |item|
    menu.append MenuItem.create!(:name => item.first, :url => item.last)
  end
  puts "=> Main menu created"
end

Using autocomplete

Before that you must follow Install instruction. To use autocomplete you need to add all possible url’s in config/lolita-menu-urls.rb

Example

# This will add contacts url and all possible URL's from Page model.
Lolita::Menu::Urls.create do 
  add "/contacts", "Contacts"
  Pages.each do |page|
    add "/#{page.friendly_id}", page.title
  end
end

After that you can populate all from file in result file by executing

rake lolita_menu:generate_urls

If you want to add url when some of objects are created, then in your model add after_save or after_create callbacks and in related method add

Lolita::Menu::Urls.add("/link", "Label"), unfortuneately it's impossible to use routes helper methods unless you do your own workaround.

Enjoy!

Copyright © 2011 ITHouse and Arturs Meisters. See LICENSE.txt for further details.