News for hackers. Stuff that matters.
Re:Out Of Controller by dan_manges on Saturday October 22, 2011 @03:22PM (#3144140)
I like using service classes for things like this.

  class StoryService
    def self.assign_story(params)
      story = Story.find(params[:story_id])
      user = User.find(params[:user_id])
      story.assign_to(user)
    end
  end
This example is fairly minimal, but with service classes handling workflow and object coordination instead of the controller, the code is easier to test and reuse.
Re:Out Of Controller by rhizome on Saturday October 22, 2011 @07:26PM (#3144610)
See, this strikes me as CS-driven code smell. Why not use an association between User and Story (maybe through :assignments) and just `user.stories.create(...)` or `user.assignments.create(:story => story)` ? No spurious class necessary.
Re:Out Of Controller by dan_manges on Saturday October 22, 2011 @11:17PM (#3145084)
That is probably how you would do it in this case, but in more complex scenarios, a simple association wouldn't be sufficient. In those cases, putting the code into a service instead of the controller will make the code easier to test and reuse.
Re:Out Of Controller by rhizome on Saturday October 22, 2011 @11:41PM (#3145119)
What's an example that exceeds the functionality of associations?
Re:Out Of Controller by tptacek on Sunday October 23, 2011 @12:24AM (#3145202)
You wouldn't put the code in the controllers; you'd extend the association proxy.