开发者

how to show error messages in <%= f.error_messages %> with rescue ActiveRecord::RecordInvalid in your controller

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜