Ruby on rails rails 3.1.0中的Omniauth问题

Ruby on rails rails 3.1.0中的Omniauth问题,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,omniauth,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Omniauth,我遵循了ryan bates railscast的屏幕放映形式,除了我改变我的方法如下所示外,一切都很顺利: 从 def创建 omniauth=request.env[“omniauth.auth”] 当前用户.authentications.create(:provider=>omniauth['provider'],:uid=>omniauth[“uid”]) flash[:注意]=“身份验证成功” 救援异常=>e #只需吐出错误消息和回溯即可。 呈现:text=>“+e.to_+”“+e.

我遵循了ryan bates railscast的屏幕放映形式,除了我改变我的方法如下所示外,一切都很顺利:

def创建
omniauth=request.env[“omniauth.auth”]
当前用户.authentications.create(:provider=>omniauth['provider'],:uid=>omniauth[“uid”])
flash[:注意]=“身份验证成功”
救援异常=>e
#只需吐出错误消息和回溯即可。
呈现:text=>“+e.to_+”
“+e.backtrace.join(“\n”)+” 结束

def创建
omniauth=request.env[“omniauth.auth”]
当前用户.authentications.create(omniauth['provider'],omniauth[“uid”])
flash[:注意]=“身份验证成功”
救援异常=>e
#只需吐出错误消息和回溯即可。
呈现:text=>“+e.to_+”
“+e.backtrace.join(“\n”)+” 结束
我一直在为“twitter”使用未定义的方法
stringify_keys”:String
,但第一种方法一切正常。这里有什么想法你改变了:

致:

在任何rails应用程序中都会出现此错误,因为您没有指定将值分配给哪些字段。 示例(来自我的一个应用程序):

我想你的意思是:


这与Railscapsts一集中的做法相同。或者我错过了什么对不起,我真的不知道你想做什么。第一种方法有什么问题吗?没有什么只是想通过twitter以教程的方式进行身份验证,因为这就是我想做的。请将链接链接到屏幕广播,我会检查它。非常感谢,现在我了解了全部内容
      def create
       omniauth = request.env["omniauth.auth"]
       current_user.authentications.create(:provider => omniauth['provider'], :uid =>         omniauth["uid"])
       flash[:notice] = "Authentication successful"
       rescue Exception => e
       # Just spit out the error message and a backtrace.
       render :text => "<html><body><pre>" + e.to_s + "</pre><hr /><pre>" +    e.backtrace.join("\n") + "</pre></body></html>"
    end
  def create
    omniauth = request.env["omniauth.auth"]
    current_user.authentications.create(omniauth['provider'], omniauth["uid"])
    flash[:notice] = "Authentication successful"
  rescue Exception => e
    # Just spit out the error message and a backtrace.
    render :text => "<html><body><pre>" + e.to_s + "</pre><hr /><pre>" + e.backtrace.join("\n") + "</pre></body></html>"
    end
current_user.authentications.create(:provider => omniauth['provider'], :uid =>         omniauth["uid"])
current_user.authentications.create(omniauth['provider'], omniauth["uid"])
ruby-1.9.2-p180 :002 > User.create("a", "b")
NoMethodError: undefined method `stringify_keys' for "a":String
user = User.find_by_provider_and_uid(auth["provider"], auth["uid"]) || User.create_with_omniauth(auth)