---
title: Rails plugins
category: Rails
+layout: 2017/sheet
---
-Generate a plugin
------------------
+### Generate a plugin
Generate a Rails Engine plugin:
Initializers
------------
+### Initializers
+
* [Rails::Railtie](http://edgeapi.rubyonrails.org/classes/Rails/Railtie.html)
* [EngineYard blog
post](http://www.engineyard.com/blog/2010/extending-rails-3-with-railties/)
+### Initializer method
+
Subclass Railtie and provide an `initializer` method.
module NewPlugin
Custom routes
-------------
+### Custom routes
+
* [ActionDispatch::Routing::Mapper](http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper.html)
+### Creating routes
+
To create custom `routes.rb` keywords:
# # routes.rb:
Custom generators
-----------------
+### Custom generators
+
* [Guide: generators](http://guides.rubyonrails.org/generators.html)
* [ActiveRecord::Generators::Base](http://api.rubyonrails.org/classes/ActiveRecord/Generators/Base.html)
ActiveModel 'acts as'
---------------------
+### acts as
+
# yaffle/lib/yaffle/acts_as_yaffle.rb
module Yaffle
module ActsAsYaffle