2012-06-04 3 views
1

ActiveResource에서 Rails 3.2.3을 사용하고 있습니다. 내가 생산에 문제가 말한다 : 초기화되지 않은 상수 ActiveResource :: ResourceNotFound

ActiveResource::ResourceNotFound: Failed. Response code = 404. Response message = Not Found. 

그래서 나는 그것을 내가 ActiveRecord::RecordNotFound 치료 같은 방법으로 치료하는 시도 :

class ApplicationController < ActionController::Base 
    protect_from_forgery 

    rescue_from ActiveRecord::RecordNotFound do |e| 
    render_404 
    end 

    rescue_from ActiveResource::ResourceNotFound do |e| 
    render_404 
    end 

    def render_404 
    respond_to do |type| 
     type.html { render template: 'shared/404_not_found', layout: 'application', status: '404 Not Found' } 
     type.all { render nothing: true, status: '404 Not Found' } 
    end 
    end 
end 

을하지만 배포 할 때 지금, 내가 말해 오류가 그 :

/apps/com.example/shared/bundle/ruby/1.9.1/gems/activeadmin-0.4.3/lib/active_admin/namespace.rb:191:in `eval': uninitialized constant ActiveResource::ResourceNotFound (NameError) 

나는 정말로 그것을 얻지 않는다. if defined?(ActiveResource::ResourceNotFound)으로 시도했지만 이전 동작으로 돌아갑니다.

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

감사합니다.

편집 : 잠시 동안 나는 다음 코드를 사용했지만 실제로는 만족스럽지 않습니다. 그것은 시작 (I 가정 할 때, ActiveResource는 'hasn에 그것을 평가하지 않도록

rescue_from "ActiveResource::ResourceNotFound" do |e| 
    render_404 
end 

따옴표에서 예외를 넣어 :

rescue_from Exception do |e| 
    e.is_a?(ActiveResource::ResourceNotFound) ? render_404 : raise 
end 
+0

사용중인 레일 버전은 무엇입니까? 이 클래스는 Rails 3에는 존재하지 않습니다. –

+0

예 : https://github.com/rails/rails/blob/45d6cd94b3ef2ec77166def41f29188445b35608/activeresource/lib/active_resource/exceptions.rb#L61 – Happynoff

+0

발행물. 또한'rescue_from ActiveResource :: ResourceNotFound'를 사용하고 같은 오류가 발생합니다. 해결책을 제안 했습니까? 아니면 여전히 글로벌 해상에서 예외 해킹을 사용하고 있습니까? : \ – nzifnab

답변

2

훗, 내 의견을 무시 나는 해결책을 알아 냈어 t loaded yet)

+0

대단히 감사합니다 :) – Happynoff

관련 문제