как показать сообщения об ошибках в <% = f.error_messages%> с помощью спасения ActiveRecord :: RecordInvalid в вашем контроллере - PullRequest
0 голосов
/ 28 июля 2011

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%>, пожалуйста, помогите !!

1 Ответ

4 голосов
/ 28 июля 2011

Решение:

В вашей компании модель:

 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...