【问题标题】:what does this mean for linkedin gem? undefined method `downcase' for nil:NilClass这对linkedin gem意味着什么? nil:NilClass 的未定义方法“downcase”
【发布时间】:2011-08-13 01:44:30
【问题描述】:

我现在收到以下错误(实际上并没有更改代码,但开始发生):

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 

试图找到问题让我发疯。

【问题讨论】:

    标签: ruby-on-rails oauth linkedin omniauth


    【解决方案1】:

    如果您粘贴完整的堆栈跟踪,我可以提供更好的解决方案,但基本上,您传递给其中一个方法的参数之一是 nil。

    很可能在这两行之一

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

    如果它“刚刚”开始发生,无需更改代码,我敢打赌我的 2 美分 ENV 属性之一将返回 nil

    【讨论】:

    • 对。该用户属性或其中一个用户属性在数据库中为零。
    • 谢谢——我改变的一件事是@client 到客户端......我似乎没有问题......为什么?我没有对 ENV 进行更改....
    • 不知道为什么这可能解决了问题。 @client 是一个实例变量,而 client 是一个局部变量。由于您在方法中写入该变量,所以它真的无关紧要......我认为。
    • 我同意,它不应该......但它确实......我认为这是因为我们不能只访问@client,而是需要 profile 方法。 ...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 2023-01-03
    • 2011-06-28
    • 1970-01-01
    • 2011-08-28
    • 2018-09-04
    相关资源
    最近更新 更多