2011-04-26 135 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

相关问题