2014-10-18 83 views
0

得到這個錯誤:NameError在控制器未初始化不斷

Started POST "/webhook" for 127.0.0.1 at 2014-10-18 11:50:26 +0300 
Processing by Stripe::WebhooksController#webhook as XML 
    Parameters: {"id"=>"evt_14osuo2XLHInsdy70EAY7Iuf", "created"=>1413622222, "livemode"=>false, ...} 
Completed 500 Internal Server Error in 963ms 

NameError (uninitialized constant Stripe::WebhooksController::Account): 
    app/controllers/stripe/webhooks_controller.rb:10:in `webhook' 

控制器內

class Stripe::WebhooksController < ApplicationController 
    protect_from_forgery :except => [:webhook] 

    def webhook 
    @event = Stripe::Event.retrieve(params[:id]) 
    @object = @event.data.object 
    if @object.object == 'customer' 
     @account = Account.find(@object.id) 
    else 
     @account = Account.find(@object.customer) 
    end 
    @subscription = @account.subscription 
    render nothing: true 
    end 
end 

帳戶是一個類,我想獲得一個對象了這個班,爲什麼錯誤說:Stripe::WebhooksController::Account,couldn的找不到任何解釋爲什麼這個行爲是這樣的。我怎樣才能解決這個問題? 謝謝。

p.s.發現了類似的one,但沒有答案,它

回答

1

它更通常不是如果你堅持的命名空間命名空間下Stripe

這將是更好的事情可做......

class WebhooksController < ApplicationController 

您的應用程序控制器,那麼您必須明確指出Account位於名稱空間之外並從根進行訪問。

@account = ::Account.find(@object.id) 
+0

非常感謝您的先生,學到了新的東西。想知道爲什麼它已經工作了幾天,並在幾個小時前失敗了。無論如何,謝謝你的幫助。 – rmagnum2002 2014-10-18 10:17:35

+0

嗯,是的,我有時候很好奇。 :)我不坦白地理解「默認」命名空間有時是不同的,當我遇到類似問題時,它有點不可預知。一般來說,除了版本控制API之外,我避免對我的類進行命名空間,它使我的生活更加容易。 – SteveTurczyn 2014-10-18 10:24:12

+0

謝謝,我會牢記這一點。乾杯。 – rmagnum2002 2014-10-18 13:38:54

相關問題