Global Modules in Rails3?

Hi,

Newbie here. I would like to know where do I keep modules that I can
include in the Models as well as Controllers in the app? Where do I
store the modules, which files?

You can put them in the lib folder

Ok If I put them in the lib folder I can include them in both models
and controllers right? Any special syntax I should be aware of? And I
just create a new .rb file in the lib folder and drop the module(s) in
right? Sorry just confirming :slight_smile: and Thanks!

Also, if you put

config.autoload_paths += %W(#{config.root}/lib)

in config/application.rb, then you don’t need to use require
‘cool_code’.

No special syntax.
Just ‘require’ to load the module to make the application aware of that
code’s existence. Then include to add the methods of that module to
either
the model or controller.

lib/cool_code.rb

module CoolCode
def do_stuff
Rails.logger.debug “do stuff”
end
end

app/controllers/welcome_controller.rb

require ‘cool_code’

class WelcomeController < ApplicationController
include CoolCode
def index
do_stuff
end
end

app/models/post.rb

require ‘cool_code’

class Post < ActiveRecord::Base
include CoolCode

def some_method
do_stuff
end

end

Hey Dermot, Thanks a Ton that did if for me :slight_smile:

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