* this content is now outdated and only applied to Merb 0.9*

I’m working on a post reporting a recent benchmark I did comparing Rails vs Merb performances for a client’s app.

In the meantime, here are few tricks you might need when using Merb 0.9x

  1. In the init.rb file, uncomment and rename c[:session_id_key] (in the Merb::Config.use block)

  2. In the same block, add c[:log_level] = :debug to set a log level

  3. By default, Merb logs to STDOUT, to log to a file, in the config block add c[:log_file] = Merb.log_path + ‘/development.log’ (note that you need to create the file yourself, Merb won’t do that)

  4. to save your gems locally, do: sudo gem install gem_name -i gems

  5. need basic HTTP auth? it’s now available in core

  6. don’t forget to require any plugins, extra gems you need (such as merb_helpers or merb-assets)

  7. don’t forget to select your ORM before using the generator( so your generated goodies will be adapted to your ORM)

  8. routes are easy to use. In the console (merb -i) type merb.show_routes to see all your named routes

  9. if you want to use linkto, install merbassets

  10. nested routes example:

1
2
3
4
5
6

  r.resources :channels do |channels|
    channels.resources :shows do |shows|
     shows.resources :episodes
    end
   end

usage:

1
2
3
4

  url(:channel_shows, :channel_id => channel)

  link_to h(channel.description), url(:channel, :id => channel)

That’s it for today :)

In the meantime, check this Merb presentation by Ezra and this DataMapper presentation by Wycats