Rails 5: ограничить запрос HTTParty для current_user - PullRequest
0 голосов
/ 22 марта 2019

В настоящее время я работаю над реализацией API Typeform. Я могу получить ответы, но мне нужно отобразить ответы, назначенные пользователю.

Когда передается форма типа, hidden_field передается в форму типа, которая равна current_user.hash_id.

Пока все хорошо. Я также могу установить ограничение для API с parameter с именем query.

Так что мой запрос в настоящее время выглядит так:

  def get_data
    self.class.get("/forms/XXXXX/responses?page_size=25&query=", headers: { "Authorization" => @auth})
  end

Мне нужно добавить current_user.hash_id к &query=, но, поскольку я делаю этот запрос из моей модели, я не могу использовать current_user.

Следовательно, я должен передать логику своему controller, чтобы сделать current_user доступным, или есть другой способ безопасного вызова current_user в моем model?

1 Ответ

1 голос
/ 22 марта 2019

Рельсы 5.2

Итак, я сделал следующее:

Я создал module в lib для доступа :user

module Current
 thread_mattr_accessor :user
end

Впоследствии я добавилэто к моему ApplicationController

around_action :set_current_user

def set_current_user
  Current.user = current_user
  yield
 ensure
  Current.user = nil
 end

Вам также необходимо добавить config.autoload_paths к вашему àpplication.rb

config.autoload_paths += %W(#{config.root}/lib)

После этого вам потребуется перезагрузить сервер.

Наконец, вы можете получить доступ к Current.user в вашей модели, например:

  def get_data
    self.class.get("/forms/XXXXX/responses?page_size=25&query=#{Current.user.hash_id}", headers: { "Authorization" => @auth})
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...