结合pengwynn linkedin gem和devise / omniauth?

时间:2012-07-16 20:11:00

标签: ruby-on-rails devise omniauth linkedin

我正在尝试关注此链接,以帮助将linkedin gem与omniauthable设计Rails平台集成。

http://renderedtext.com/blog/2011/08/17/how-to-use-linkedin-gem-with-omniauth/

两个简单的问题!

  1. 最底层的“类LinkedinFactory”文件位于应用程序中,它会被称为什么?我在上面的链接中没有看到目录/文件名。

  2. 当我尝试通过linkedin登录时,我的应用程序失败了:

    OmniauthCallbacksController中的NoMethodError#linkedin

    nil的未定义方法`create_linkedin_connection':NilClass

  3. 我在哪里以及如何定义“create_linkedin_connection”方法?它在omniauth_callbacks.rb控制器的第3行中调用:

    def linkedin
        omniauth_hash = env["omniauth.auth"]
        current_user.create_linkedin_connection(
          :token  => omniauth_hash["extra"]["access_token"].token,
          :secret => omniauth_hash["extra"]["access_token"].secret,
          :uid    => omniauth_hash["uid"]
        )
        redirect_to root_path, :notice => "You've successfully connected your LinkedIn account."
      end
    

    谢谢!

1 个答案:

答案 0 :(得分:0)

1)用户定义的类通常应放在 lib目录

2)您正在current_user上调用“create_linkedin_connection”方法,在这种情况下,该方法需要位于Users控制器中。一旦更改了,您需要确保在routes.rb文件中指定路由。路线应该如此定义

match '/auth/callback', to: 'users#create_linkedin_connection'