Chapter 3. Rails Plugins
Civilization advances by extending the number of important operations which we can perform without thinking of them.
—Alfred North Whitehead
Ruby on Rails is very powerful, but it cannot do everything. There are many features that are too experimental, out of scope of the Rails core, or even blatantly contrary to the way Rails was designed (it is opinionated software, after all). The core team cannot and would not include everything that anybody wants in Rails.
Luckily, Rails comes with a very flexible extension system. Rails plugins allow developers to extend or override nearly any part of the Rails framework, and share these modifications with others in an encapsulated and reusable manner.
About Plugins
Plugin Loading
By default, plugins are loaded from directories under
vendor/plugins in the Rails application root.
Should you need to change or add to these paths, the plugin_paths
configuration item contains the
plugin load paths:
config.plugin_paths += [File.join(RAILS_ROOT, 'vendor', 'other_plugins')]
By default, plugins are loaded in alphabetical order; attachment_fu
is loaded before http_authentication
. If the plugins have
dependencies on each other, a manual loading order can be specified
with the plugins
configuration
element:
config.plugins = %w(prerequisite_plugin actual_plugin)
Any plugins not specified in config.plugins
will not be loaded. However,
if the last plugin specified is the symbol :all
, Rails will load all remaining plugins at that point. ...
Get Advanced Rails now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.