Here is how my restful new action look like:
def new
@foo = @widget.build(params[:foo])
raise NoPost unless request.post?
@foo.save!
respond_to do |type|
type.html { redirect_to foo_url }
type.js { render :action => :create }
end
rescue NoPost
respond_to do |type|
type.html { render :action => :new }
type.js { render :partial => ‘form’ }
end
rescue ActiveRecord::RecordInvalid
respond_to do |type|
type.html { render :action => :new }
type.js { render :action => :create }
end
end
alias :create :new
Any ideas how to DRY it?