To run this app locally: cd test/dummy

Setup your db here: wafflemix/test/dummy/config/database.yml

start dummy app with: rails server

Using as an engine + setting up new application

  1. Add wafflemix to your gemfile - gem ‘wafflemix’, ‘~> 0.0.5’

  2. config/application.rb - add require “wafflemix” below bundle method.

  3. config/routes.rb - add: mount Wafflemix::Engine => “/”

  4. Include wafflemix helpers in application_controller.rb: helper Wafflemix::Engine.helpers

  5. rake wafflemix:install:migrations

  6. rake db:migrate


  1. Ensure you have defined default url options in your environments files. Here is an example of default_url_options appropriate for a development environment in config/environments/development.rb:

    config.action_mailer.default_url_options = { :host => 'localhost:3000' }

    In production, :host should be set to the actual host of your application.

  2. Ensure you have defined root_url to something in your config/routes.rb. For example:

    root :to => "home#index"
  3. Ensure you have flash messages in app/views/layouts/application.html.erb. For example:

    <p class="notice"><%= notice %></p>
    <p class="alert"><%= alert %></p>
  4. If you are deploying Rails 3.1 on Heroku, you may want to set:

    config.assets.initialize_on_precompile = false

    On config/application.rb forcing your application to not access the DB or load models when precompiling your assets.

  5. Since devise is an engine and this CMS is an engine, we need to set the order in which their loaded.

In config/application.rb add:

config.railties_order = [Wafflemix::Engine, :main_app, :all]

Read more about Devise: github.com/plataformatec/devise

S3 uploads

Add the following to application.rb within the application class definition:

config.middleware.insert 0, ‘Dragonfly::Middleware’, :images

In an initializer or in config/environments/development.rb set:

ENV = ‘your_key’ ENV = ‘your_secret’ ENV = ‘your-bucket’

And for heroku (by default production):

heroku config:add S3_KEY=***your-s3-key*** S3_SECRET=***your-s3-secret*** S3_BUCKET=***your-bucket***

Overriding routes

Overriding routes is straightforward, in config/routes add:

Wafflemix::Engine.routes.draw do


Add any routes you want to override inside this block.

For example, changing the root url:

Wafflemix::Engine.routes.draw do
  root :to => "posts#index"

##Todo’s New app generators Instructions for S3 config Seed Default roles

This project rocks and uses MIT-LICENSE.