Where is global Rails configuration?


Let’s say I wanted to add something to Rails that I would like all
applications to use. For example, I would like to add the pluggable
parameter parsing using:

ActionController::Base.param_parsers[‘application/atom+xml’] =
Proc.new do |data|
node = REXML::Document.new data
{ node.root.name => node.root }

(got this example from e.g. http://www.linuxjournal.com/article/8968,
but it’s also in the source code). I would not like this to be related
to a specific controller or application - I would like to add it for
all applications at once. In this case, it would be for both already
existing applications and the ones I create. What is the appropriate
place for this (if any)? I know that editing environment.rb is a good
place for per-application settings.

Yes, another (relatively simple) way would be to just ‘require’ the
Ruby file with these settings in all applicaitons, but I am just
curious if there is some standard way of doing this.

I would say the appropriate place for this would be in a plugin.
Doing anything else would mean modifying the Rails core code, which
I’m guessing would violate your Rails open source license agreement
(unless you’re a Rails contributor). Basically, if you modify Rails
it won’t be Rails anymore.

Rails is kind enough to offer a plug-in architecture where you should
be able to do what you want and include it into all or your

A plugin is probably the way to go, but there’s nothing wrong from the
point of view of licensing with fiddling with the core code - Rails is
distributed under the MIT license which allows you to do pretty much


This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs