Best Practices for Multiple Model Creation

So I have a few models that need to be created, but only based on a few inputs. There is no need for nested attributes, in fact I would rather avoid this.

The way I have been doing it is like so

class WidgetsController < ApplicationController

def create

respond_to do |format|

if current_user.create_widget(params[:foo])

flash[:success] = “Processed your request”

else

flash[:error] = “There was a problem processing your request”

end

format.html { redirect_to widgets_path }

end

end

end

class User < ActiveRecord::Base

def create_widget params

User.transaction do

widget = self.widgets.build.save!

widget.blinky_lights.build(params[:foo]).save!

true

end

end

end

In this contrived example, Widget is basically an entity that other crap will hang from. Is this even a decent build pattern or does someone have a better idea of how to handle a case like this.