Я использую камни RoR 5.2, ruby-trello, devise и omniauth-trello.Мне нужна возможность делать авторизованные запросы к API Trello (https://github.com/jeremytregunna/ruby-trello#multiple-users).
. Это мое обратное действие для входа в Trello.
def trello
@user = User.from_omniauth(request.env['omniauth.auth'])
if @user.persisted?
@client = Trello::Client.new(
:consumer_key => Rails.application.credentials.trello[:key],
:consumer_secret => Rails.application.credentials.trello[:secret],
:oauth_token => params[:oauth_token],
:oauth_token_secret => params[:oauth_verifier]
)
@user.update(client: @client)
sign_in_and_redirect @user, event: :authentication
set_flash_message(:notice, :success, kind: 'Trello') if is_navigational_format?
end
end
Этот код сохраняет строку в @ user.client., а не объект. Если попытаться puts @client.inspect
консоль показывает это (не содержит что-то вроде ID):
#<Trello::Client:0x00007f1550453*** @configuration=#<Trello::Configuration:0x00007f1550453*** @consumer_key="***", @consumer_secret="***", @oauth_token="***", @oauth_token_secret="***">>
(изменил реальные данные на '***')
Как я могудоступ к @client (Trello :: Client obj) через @user? Может быть, вы знаете лучший способ делать авторизованные запросы от нескольких пользователей в моем приложении?
Извините за мой английский! Заранее спасибо.