Rails 5:将HTTParty查询限制为current_user

时间:2019-03-22 12:36:23

标签: ruby-on-rails

我目前正在研究Typeform API的实现。我能够获取响应,但是我需要向用户显示提升的响应。

提交Typeform时,会将hidden_field传递给Type current_user.hash_id

到目前为止一切都很好。我还可以使用名为parameter的{​​{1}}来设置API的限制。

所以我的请求当前看起来像:

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呢?

1 个答案:

答案 0 :(得分:1)

Rails 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