Oauth Can';t坚持使用Rails 4 Omniauth&;Tumblr

Oauth Can';t坚持使用Rails 4 Omniauth&;Tumblr,oauth,devise,omniauth,tumblr,ruby-on-rails-4,Oauth,Devise,Omniauth,Tumblr,Ruby On Rails 4,似乎我不是唯一一个与其他OAuth提供商&Desive有过这个问题的人。我正在尝试使用用户的Tumblr帐户对用户进行身份验证,将其昵称存储为用户的用户名,并存储其oauth token&secret,以便在用户执行某些操作时,我的应用程序可以自动发布到Tumblr 我遵循、和设计(我的代码基于Railscast#235插曲),但我无法完全获得存储在数据库中的用户数据。第一个尝试进行身份验证的用户“工作”正常(它创建了一个用户名,但没有其他内容),但是任何尝试登录/身份验证的其他用户都会被分配给

似乎我不是唯一一个与其他OAuth提供商&Desive有过这个问题的人。我正在尝试使用用户的Tumblr帐户对用户进行身份验证,将其昵称存储为用户的用户名,并存储其oauth token&secret,以便在用户执行某些操作时,我的应用程序可以自动发布到Tumblr

我遵循、和设计(我的代码基于Railscast#235插曲),但我无法完全获得存储在数据库中的用户数据。第一个尝试进行身份验证的用户“工作”正常(它创建了一个用户名,但没有其他内容),但是任何尝试登录/身份验证的其他用户都会被分配给第一个用户的凭据(并且数据库中没有条目)

我使用的是Rails 4.0.0和Ruby 2.0.0-p195。我是否需要使用强参数执行某些操作

有些事情在幕后进行,没有错误消息,我只是不知道如何找出该去哪里看。这是我的密码:

# user.rb
def self.from_omniauth(auth)
    if user = User.find_by_username(auth.info.name)
      user.provider = auth.provider
      user.uid = auth.uid
      user
    else
      where(auth.slice(:provider, :uid)).first_or_create do |user|
        user.provider = auth.provider
        user.uid = auth.uid
        user.username = auth.info.nickname
        user.oauth_token = auth.info.credentials.token
        user.oauth_token_secret = auth.info.credentials.secret
      end
    end
  end
我的控制器(基本上与我读过的所有其他教程相同)

class OmniAuthCallbackController
如果有人能洞察到我可能做错了什么,或者甚至知道如何找出答案(我不介意看,只是想法),我会非常感激


谢谢

答案似乎相当简单,但绝对没有我所怀疑的。当我把它放进去的时候!在我的create方法中,我在名为:
index\u users\u on\u email
的用户模型中发现了一个关于我的designe创建的索引的错误

所以我创建了这个迁移来删除它:

class RemoveIndexUsersOnEmailFromUsers < ActiveRecord::Migration
  def self.up
    remove_index(:users, :name => 'index_users_on_email')
  end

  def self.down
    add_index(:users, :name => 'index_users_on_email')
  end
end
类RemoveIndexUsersOnEmailFromUsers'index\u users\u on\u email')
结束
def自动关闭
添加索引(:users,:name=>index\u users\u on\u email')
结束
结束
瞧!希望这对某人有帮助

class RemoveIndexUsersOnEmailFromUsers < ActiveRecord::Migration
  def self.up
    remove_index(:users, :name => 'index_users_on_email')
  end

  def self.down
    add_index(:users, :name => 'index_users_on_email')
  end
end