Accessing method in another controller

If I have :

class X < ApplicationController
   def some_method
  ...
   end
end

and I have

class Y < ApplicationController

end

How, from a method within class Y, can I call class X's some_method ?

TIA, RVince

Seems the best solution is the straight OOP solution:

class Y < X
    ...
   something = some_method
   ....
end

I’d say it depends on whether Y really IS AN X. If not, but they have similar roles, I’d say you’re better of doing this:

class Z < ApplicationController

def some_method

end

end

class X < Z

end

class Y < Z

end

or more simply:

module Z

def some_method

end

end

class X < ApplicationController

include Z

end

class Y < ApplicationController

include Z

end

You could also instantiate an X controller, but depending on the method you’re trying to call, you may need to do a bit of setup (pass in the request/response somehow so it can take over).

Cheers,

Andy

Andy Jeffries wrote:

I'd say it depends on whether Y really IS AN X. If not, but they have
similar roles, I'd say you're better of doing this:

class Z < ApplicationController
  def some_method
    ...
  end
end

class X < Z
  ...
end

class Y < Z
  ...
end

I like this if ALL your controllers should have access to some_method

module Z
  def some_method
     ...
  end
end

class X < ApplicationController
  include Z
  ...
end

class Y < ApplicationController
  include Z
  ...
end

I like this if some_method should only be available to some controllers.

Depends on the application requirements as to which way I would go...