# Config.plugins doesn't work

**URL:** <https://www.ruby-forum.com/t/config-plugins-doesnt-work/104253>\
**Category:** Rails\
**Created:** [May 15, 2007, 11:45pm UTC](https://www.ruby-forum.com/t/config-plugins-doesnt-work/104253 "2007-05-15T23:45:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Parker\_T](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/eada6e/32.png) [@Parker\_T](https://www.ruby-forum.com/u/Parker_T)\
**Post date:** [May 15, 2007, 11:45pm UTC](https://www.ruby-forum.com/t/config-plugins-doesnt-work/104253/1 "2007-05-15T23:45:57Z")

</div>

Hi,

I see references to using config.plugins like so:

config.plugins = [  
‘plugin\_dependencies’,  
“\*”  
]

in the engines and appable plugins worlds (et al). Reading the  
initializer  
code I just can’t see how this would work, and in fact it doesn’t for me  
(nor does my lame hack [1]),. Can anyone tell me how I might tell the  
initializer to load plugin A, then B, then everything else?

Thanks,

pt.

[1]

config.plugins = [  
‘plugin\_dependencies’  
] +  
Rails::Initializer.new(config).send(:find\_plugins,  
“./vendor/plugins”).collect do |path|  
path.gsub!(/^.+/(.+)$/, ‘\1’)  
end

---

<div class="post-metadata">

**Author:** ![Parker\_T](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/eada6e/32.png) [@Parker\_T](https://www.ruby-forum.com/u/Parker_T)\
**Post date:** [May 16, 2007, 2:11am UTC](https://www.ruby-forum.com/t/config-plugins-doesnt-work/104253/2 "2007-05-16T02:11:08Z")

</div>

Parker

> I see references to using config.plugins like so:

I don’t know about the Engine way to handle this, but in standard Rails  
I use  
config.plugin\_paths  
to tell Rails where to find extra plugins.

For example, I move all my development-only plugins to a separate  
directory  
vendor/plugins-development

, and I link to it by adding  
config.plugin\_paths.push(‘vendor/plugins-development’ ).uniq!  
in development.rb

more details here:  
[http://blog.ravet.com/2007/05/rails-plugins-sortbyenvironment.html](http://blog.ravet.com/2007/05/rails-plugins-sortbyenvironment.html)

## Alain R.

[http://blog.ravet.com](http://blog.ravet.com)

---

<div class="post-metadata">

**Author:** ![Parker\_T](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/eada6e/32.png) [@Parker\_T](https://www.ruby-forum.com/u/Parker_T)\
**Post date:** [May 23, 2007, 10:41pm UTC](https://www.ruby-forum.com/t/config-plugins-doesnt-work/104253/3 "2007-05-23T22:41:20Z")

</div>

The engines plugin overrides the default Rails initializer code to  
achieve this. You can see the code in the following files:

[http://svn.rails-engines.org/plugins/engines/lib/engines.rb](http://svn.rails-engines.org/plugins/engines/lib/engines.rb)  
[http://svn.rails-engines.org/plugins/engines/lib/engines/rails\_extensions/rails\_initializer.rb](http://svn.rails-engines.org/plugins/engines/lib/engines/rails_extensions/rails_initializer.rb)

In the “vanilla” rails, there’s no way to say “load A, then B, then  
everything else in any order”, which is why I had to implement it  
myself. Hooking into the initializer is tricky from a plugin (since  
you’re overriding the very mechanism that’s loading your changes), but  
if you spend some time looking at the engines plugin code you should  
be able to figure out which parts I needed to change.

James
