Where to put model “utility” functions in Ruby on Rails

The simplest solution would be to create a module under lib and mix this into the models that need it, for instance, in lib/fooable.rb:

module Fooable
  def do_foo
  end
end

And then in your various models:

class MyModel < ActiveRecord::Base
  include Fooable
end

No need to require fooable.rb, the Rails autoloading mechanism will find it for you as long as it’s named using correct conventions.

Leave a Comment