user_controller.开发者_如何学运维rb
def create
@user = User.new(params[:user])
@company = Company.new(params[:company])
[@company,@user].each {|ins|
raise ActiveRecord::RecordInvalid.new(ins) unless ins.valid?
}
User.transaction do
@company.save!
@user.company = @company
@user.save!
end
rescue ActiveRecord::RecordInvalid
render :action => 'new'
end
I am not getting error messages through <%= f.error_messages %> please help!!
A solution:
In your Company model:
accepts_nested_attributes_for :user
In your controller:
def create
@company = Company.new(params[:company].merge(:user_attributes => params[:user])
if @company.save
#what you want
else
@user = @company.user
render :action => 'new'
end
end
精彩评论