2011-02-21 2 views
0

나는 Rails 2.3 애플리케이션을 가지고있다.레일스가 유효하지 않은 형식에서 복구 되었습니까?

내가 현재 가지고 내 모델에서 다음과 같은 검증 :

validates_presence_of :jobno, :companyname 

나는 다음과 같은 컨트롤러를 가지고 : 당신이 시도하고 중 하나를 포함하지 않는 새 레코드를 만들 그래서

# POST /kases 
# POST /kases.xml 
    def create 
    @company = Company.find(params[:kase][:company_id]) 
    @kase = @company.kases.create!(params[:kase]) 

    respond_to do |format| 
     UserMailer.deliver_makeakase("EMAILADDRESS", "Highrise", @kase) if params[:sendtohighrise] 
     UserMailer.deliver_makeakaseteam("EMAILADDRESS", "Highrise", @kase) if params[:notify_team_of_creation] 
     @kase.delay.create_freeagent_project(current_user) if params[:send_to_freeagent] 

     #flash[:notice] = 'Case was successfully created.' 
     flash[:notice] = fading_flash_message("Case was successfully created.", 5) 
    end 
     format.html { redirect_to(@kase) } 
     format.xml { render :xml => @kase, :status => :created, :location => @kase } 
    end 

을 jobno 또는 companyname 다음 오류 메시지가 올바르게 표시됩니다.

ActiveRecord::RecordInvalid in KasesController#create 
Validation failed: {{errors}} 

I hav 복구 능력에 대해 읽었지 만, 어떻게/어디에서 사용해야하는지 확신 할 수 없습니다. 양식의 내용을 구할 수있는 능력에 관한 몇 가지 문서를 읽었습니다. 양식을 입력 된 내용으로 그대로 유지하려고하지만 양식에 오류가 표시됩니다. 내가 읽은 문서의

하나는 여기에 단순히 문제가 다시 시도 할 수 있도록 무엇인지를 사용자에게 알려주는 오류를 기록하고 싶지 않은 http://apidock.com/rails/ActiveRecord/RecordInvalid

입니다.

이것이 가능합니까?

감사합니다,

대니

답변

2
def create 
    @company = Company.find(params[:kase][:company_id]) 
    @kase = @company.kases.new(params[:kase]) 

    if @kase.save 
    UserMailer.deliver_makeakase("EMAILADDRESS", "Highrise", @kase) if params[:sendtohighrise] 
    UserMailer.deliver_makeakaseteam("EMAILADDRESS", "Highrise", @kase) if params[:notify_team_of_creation] 
    @kase.delay.create_freeagent_project(current_user) if params[:send_to_freeagent] 
    redirect_to @kase 
    else 
    render :new 
    end 
end 
+0

완벽한, 치료를했다 - 감사합니다! – dannymcc

관련 문제