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.