SessionsController中的Omniauth ArgumentError#创建错误的参数个数(1个为2)Rails 4

时间:2014-08-26 21:35:37

标签: ruby-on-rails ruby ruby-on-rails-4 omniauth omniauth-facebook

我正在按照在线教程将facebook omniauth合并到示例应用程序中,然后再将其添加到我的ROR应用程序(http://richonrails.com/articles/facebook-authentication-in-ruby-on-railshttps://coderwall.com/p/bsfitw),但是当我访问时,我收到错误的参数数量错误“从facebook链接登录”。

ArgumentError in SessionsController#create wrong number of arguments (1 for 2). 

这是我的用户模型(直接来自教程),错误似乎来自哪里,第3行突出显示为来源

class User < ActiveRecord::Base
 def self.from_omniauth(auth)
  where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user|
    user.provider = auth.provider
    user.uid = auth.uid
    user.name = auth.info.name
    user.oauth_token = auth.credentials.token
    user.oauth_expires_at = Time.at(auth.credentials.expires_at)
    user.save!
  end
 end
end

SessionsController

class SessionsController < ApplicationController
 def create
    user = User.from_omniauth(env["omniauth.auth"])
    session[:user_id] = user.id
    redirect_to root_url
  end

 def destroy
    session[:user_id] = nil
    redirect_to root_url
  end
 end

我没有第二个教程中的咖啡脚本,我在使用它时遇到了不同的错误。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我将omniauth-facebook宝石评为&#39; 1.4.0&#39;它工作得很好。