I have the following situation in a Ruby on Rails app:
- user fills in a form (a comment), gets to see an omniauth page where she can choose the authentication method (openId, Twitter, Facebook and the likes).
- omniauth is filled in, on success user returns, gets a session and the initial form data is processed (comment is published).
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?