2011-04-26 33 views
0

我現在得到以下錯誤(並沒有真正改變的代碼,但開始發生):這對於linkedin gem意味着什麼?未定義的方法`downcase」的零:NilClass

undefined method `downcase' for nil:NilClass 

我有這個在我的控制器與OmniAuth認證後(並獲得/存儲訪問令牌/祕密

7 def show 
    8  @user = User.find(params[:id]) 
    9  @client = LinkedIn::Client.new(ENV["LINKEDIN_KEY"], ENV["LINKEDIN_SECRET"]) 
10  @client.authorize_from_access(@user.atoken, @user.asecret) 
11  if @user == current_user 
12  @client.profile 
13  else 
14  @client.profile(:id => @user.uid) 
15  end 
16 end 

快把我逼瘋了試圖找到問題。

回答

1

如果粘貼完整的堆棧跟蹤我可以提供一個更好的解決方案,但基本上,一個參數你傳遞到那裏的方法是零。

最可能的是這兩行

@client = LinkedIn::Client.new(ENV["LINKEDIN_KEY"], ENV["LINKEDIN_SECRET"]) 
@client.authorize_from_access(@user.atoken, @user.asecret) 

如果這「只」開始發生,而無需更改代碼,我敢打賭我的2美分的ENV特性之一返回nil

之一
+0

對。無論是那個還是其中一個用戶屬性在數據庫中都是零。 – 2011-04-26 14:18:14

+0

謝謝 - 我改變的一件事是@client給客戶...我似乎沒有問題......想法爲什麼?我沒有改變ENV ... – Angela 2011-04-27 04:48:19

+0

不知道爲什麼這可能解決了問題。 '@ client'是一個實例變量,而'client'是一個局部變量。由於你在方法中寫入該變量,它不*真的*重要......我想。 – Augusto 2011-04-27 08:40:27

相關問題