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
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...