Controller into the lib folder?


#1

Hi everyone, is it possible to add a controller into the lib folder? I
tried but it doesn’t seem to work… Is it because it’s not loaded?

Thanks!


#2

You could add foo.rb into lib/modues and then where ever you want to
access those methods you would need to include that file.

require ‘lib/modules/foo.rb’

include foo


#3

Why do you want to put a controller in the lib folder? That is what the
controllers folder is for.

2009/3/27 Alex removed_email_address@domain.invalid


#4

Hi all, here is my situation: My company recently adopted RoR for all
its Web Projects. We currently have 3 major projects in development.
I’m searching for a way to share between all our projects everything
that we have in common. Currently I identified a few models,
controllers and libraries that all our projects use. All of these
files are duplicated in each of our different projects.

The way I see it, I have 2 options:

  1. Build a gem out of all the common files and install it on each
    project. What I dislike about this option is that I will have to
    update the gem every time something new is added to the gem, and this
    will happen very frequently…

  2. Create a SVN repository that contains all of what is common between
    the projects. I could then include this repository from the projects
    repository using an external link. Conceptually this is my best
    solution because a simple ‘update’ would be enough to synchronize
    everything but my problem is “How do I do that”? For example, the
    ‘lib’ directory of my project could point on the external link. But
    how will my project “know” to import my models in the app/models
    directory and my controllers in the app/controllers? Is that even
    possible?

I would appreciate your thoughts on this.

Thanks!


#5

I’ll have a look at it, thank you very much for your response!


#6

I’ve never used them before, but you can look into using Rails Engines
“The engines plugin enhances Rails’ own plugin framework, making it
simple to share controllers, helpers, models, public assets, routes
and migrations in plugins.”

http://rails-engines.org/introduction


#7

Colin L. wrote:

Why do you want to put a controller in the lib folder? That is what the
controllers folder is for.

2009/3/27 Alex removed_email_address@domain.invalid

You could create a plugin that defines controllers, models, etc so that
you can more easily share code amongst various apps. I saw that idea
yesterday in the rails guides.

Instead of generating a controller a plugin could define one, and people
could simply overwrite the actions they need to tweak and keep the rest
of the controller code untouched.