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
我没有通过<%= f.error_messages%>获取错误消息 请帮助!!
答案 0 :(得分:4)
解决方案:
在您的公司模式中:
accepts_nested_attributes_for :user
在您的控制器中:
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