Rails3 - проблема с oauth-плагином - PullRequest
3 голосов
/ 07 февраля 2011

Я пытаюсь использовать oauth-plugin в Rails приложении, которое я разрабатываю, но у меня постоянно возникают проблемы.

Чтобы убедиться, что я не ошибаюсь, я запустил приложение с нуля (используя Rails 3.0.3). Вот шаги, которые я выполнил:

  1. Создать новое приложение для рельсов (rails.test)
  2. Отредактировал Gemfile для включения:

    gem "oauth-plugin", ">=0.4.0.pre1"
    gem "oauth", "0.4.4"
    
  3. Генерируется oauth-consumer, с помощью script/rails g oauth_consumer

  4. Отредактировано oauth_consumers.rb, чтобы включить мои ключи для интеграции с Google:

    :google=>{ 
      :key=>"anonymous", 
      :secret=>"anonymous",
      :scope=>"https://www.google.com/calendar/feeds/", 
      :options => {
        :site => "http://www.google.com", 
        :request_token_path => "/accounts/OAuthGetRequestToken", 
        :access_token_path => "/accounts/OAuthGetAccessToken", 
        :authorize_path=> "/accounts/OAuthAuthorizeToken"
      },
    }
    
  5. Отредактировано routes.rb, чтобы добавить маршрут для oauth_consumer:

    resources :oauth_consumers
    
  6. Отредактировано application_controller.rb для реализации метода logged_in? следующим образом:

    def logged_in?
        true
    end
    
  7. Теперь, когда я получаю доступ к http://localhost:3000/oauth_consumers/google, я получаю следующую ошибку:

    uninitialized constant GoogleToken
    

Кто-нибудь знает, что вызывает эту ошибку и как ее можно исправить? GoogleToken - это класс, который должен был автоматически генерироваться oauth-plugin, поэтому я не могу сказать, почему я получаю эту неинициализированную постоянную ошибку.

Ответы [ 3 ]

3 голосов
/ 07 июня 2011

Класс GoogleToken не генерируется автоматически, если вы не передадите «google» генератору следующим образом:

script/rails g oauth_consumer google

или для рельсов 3:

rails g oauth_consumer google

Также проверьтечтобы убедиться, что отношения установлены в пользовательской модели следующим образом:

has_one  :google, :class_name => "GoogleToken", :dependent => :destroy
0 голосов
/ 02 марта 2011

У меня та же проблема, я думаю, что решение может быть в этом: https://github.com/pelle/oauth-plugin/blob/master/lib/generators/oauth_consumer/USAGE Вам нужен какой-то тип аутентификации, например плагин restful-authentication, если вы раскомментируете строку 27..29 в файле oauth_consumers_controller.rb, вы перейдете к следующему шагу!

0 голосов
/ 08 февраля 2011

Вы не забыли запустить bundle install из терминала после редактирования вашего Gemfile? Похоже, ваше Rails-приложение еще не знает об этих драгоценных камнях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...