Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Attempting to quantify some common DCI conventions applied to Rails apps.

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 app
Octocat-spinner-32 config
Octocat-spinner-32 db
Octocat-spinner-32 doc
Octocat-spinner-32 lib
Octocat-spinner-32 public
Octocat-spinner-32 script
Octocat-spinner-32 test
Octocat-spinner-32 vendor
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Gemfile
Octocat-spinner-32 Gemfile.lock
Octocat-spinner-32 README.markdown
Octocat-spinner-32 Rakefile

DCI Rails example

This simple app is an early attempt at getting DCI features into Rails and working towards some common conventions. I by no means expect to have every case covered here or every convention perfect at this time; this is a set of practices and conventions we're looking to grow over time as a community.


I've written up a set of walkthroughs and discussions on the project at the developerWorks website. I'll continue to add materials as the project matures and evolves.

Part One

A Convention-based Approach to DCI in Rails - Part 1

Part Two

A Convention-based Approach to DCI in Rails - Part 2

If all's well when you run the app, you should see "I performed work." appear. Note that the User class doesn't have this behavior defined, only the AdminRole module does. A new instance of User that doesn't have the 'admin' role applied won't have this behavior available.

Something went wrong with that request. Please try again.