Hi all,
Im trying to add new rows to multiple tables and need a little help
understanding transactions.
My goal is to create a new user account, account holder and blog in one
go. If either of the saes fail I would like the error messages returned
to use in my views.
I have the following method... is this the best way to achieve the goal.
It seems a little over complicated
******* CONTROLLER *******
def signup
case request.method
when :post
@account = Account.new(params[:account])
@account_holder = AccountHolder.new(params[:account_holder])
@blog = Blog.new(params[:blog])
@account_holder.display_name =
params[:account_holder][:first_name] + " " +
params[:account_holder][:last_name]
begin
Account.transaction do
# blog > membership < group
@blog.users << @account_holder
@blog.save!
# account_holder > membership < group
@account_holder.account = @account
@account_holder.save!
@account.save!
end
rescue Exception => e
#logger.error("message for the log file #{e.message}")
#flash[:notice] = e.message
render :action => ''signup'' and return
end
redirect_to :action => ''list''
end
end
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk
-~----------~----~----~----~------~----~------~--~---