Extending a module in a controller

I’m trying to extend Enumerable in my Rails app. I’ve started with just
the controller where I wanted to use this method i.e.

class LookupController < ApplicationController

module Enumerable
def my_compress

… but when I visit the web page in question I get “No method
‘my_compress’ for Array …”

I’m probably doing something fundamentally wrong - what could/should I
be doing?

thanks

Toby R. wrote:

I’m trying to extend Enumerable in my Rails app. I’ve started with just
the controller where I wanted to use this method i.e.

class LookupController < ApplicationController

module Enumerable
def my_compress

… but when I visit the web page in question I get “No method
‘my_compress’ for Array …”

I’m probably doing something fundamentally wrong - what could/should I
be doing?

You should be putting your model logic in the model, not in the
controller.

thanks

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

On May 23, 12:59 am, Marnen Laibow-Koser [email protected] wrote:

You should be putting your model logic in the model, not in the
controller.

on top of that, by putting it inside the controller like that you’ve
created a new module called LookupController::Enumerable rather than
extending Enumerable. If I were you I’d keep extensions to core
classes somewhere in lib.

Fred

Frederick C. wrote:

On May 23, 12:59�am, Marnen Laibow-Koser [email protected] wrote:
… by putting it inside the controller like that you’ve
created a new module called LookupController::Enumerable rather than
extending Enumerable. If I were you I’d keep extensions to core
classes somewhere in lib.

Fred

Ah I see, of course. So I’ve moved it to ‘my_extensions.rb’ in lib/,
added “require ‘my_extensions’” in the controller and now it works fine.
Thanks!