从标头获取值到模型中

3 ruby ruby-on-rails

我想知道是否有一种方法可以直接从模型中获取标题值.

# location.rb
class Location < ActiveRecord::Base
  puts request.header['key']
end
Run Code Online (Sandbox Code Playgroud)

让我们假装我们将一些值存储到头文件中,放入我使用的控制器中request.headers['key'].它有效,但进入模型不是

Thi*_*ilo 8

正如评论所指出的那样,不,不是直接的.该request对象仅在控制器中可用.

但是因为你必须在控制器中实例化你的模型,所以做这样的事情应该没有问题:

# some_controller.rb
def some_action
  @location = Location.new(name: request.headers['key'])
  ...
end
Run Code Online (Sandbox Code Playgroud)

  • 当然.例如,Devise使用来自密码重置等请求的令牌.将这些标记传递给方法或构造函数是否真的无关紧要,因为它们的来源可能是参数,cookie或请求标头.在输入来自用户的任何情况下,都应该仔细消毒. (2认同)