2010-05-22 7 views
1

Я использую несколько различных драгоценных камней здесь (Devise, Warden, Warden_Oauth), но я думаю, вы могли бы ответить на этот вопрос, не обязательно знакомы с ними. Я пытаюсь выполнить стратегию Twitter Oauth, где приложение сначала ищет пользователя с помощью access_token и access_secret, а затем, если он его не найдет, он создает нового пользователя. Я не могу понять, как создать нового пользователя/где в этом блоке я должен это сделать.Twitter Oauth Issue

config.warden do |manager| 

     manager.oauth(:twitter) do |twitter| 
     twitter.consumer_secret = "<secret>" 
     twitter.consumer_key = "<key>" 
     twitter.options :site => 'http://twitter.com' 
     end 

     Warden::OAuth.access_token_user_finder(:twitter) do |access_token| 
     User.find_by_access_token_and_access_secret(access_token.token, access_token.secret) 
     end 

     manager.default_strategies.unshift :twitter_oauth 
end 

Благодарим за помощь.

ответ

0

Никогда не работал с Warden, а от ехра с другими, я предполагаю, что это должно выглядеть следующим образом

Warden::OAuth.access_token_user_finder(:twitter) do |access_token| 
    user = User.find_by_access_token_and_access_secret(access_token.token, access_token.secret) 
    user ||= User.create(:access_token => access_token.token, :secret => access_token.secret) 
    end 
end