I have the following situation in a Ruby on Rails app:
I all works, except that I have my logic spread around in, what I consider, an ugly way; the SessionsController
now creates the comment on successfull authentication.
What is a good way to decouple things like this? Should the Comment
module hook into (listen to) the SessionsController? Or should the SessionsController simply call some methods on the CommentsController
or Comment
class to save a comment on successfull authentication? Are there any patterns that I can get myself familiar with, that solve these kind of issues?
I don't think it's necessarily good practice to call one controller from another, if you have shared functionality between controllers either use inheritance or a module. For your specific problem I'd do:
What would be great is if you could POST from another request, but unfortunately you can't, so you'll need to put the logic in the session controller.