在活动资源请求中设置标头

时间:2012-12-12 23:57:36

标签: ruby-on-rails rest activeresource

我有一个Active Resource模型,需要在发布/发送save和update_attributes之前设置标题。问题是每个用户的标头值需要不同,因此无法在模型级别设置。我已经看到了将标头设置为findget或自定义方法的一部分的示例,但无法将其添加到@myclass.save。像prefix_options这样的东西,但对于标题是理想的(@myclass.prefix_options[:myvar] = 'abcd'),但我没有找到类似的东西。任何见解都将不胜感激。

2 个答案:

答案 0 :(得分:5)

我遇到了类似的问题并且在我的ActiveResource类上覆盖了.headers。默认情况下,ActiveResource::Base.headers只是一个哈希值,但您可以将其覆盖为方法! < 3 U Ruby。

http://rmosolgo.github.io/blog/2014/02/05/dynamically-generated-headers-for-activeresource-requests/

答案 1 :(得分:2)

我刚刚检查了3.2.8的代码,看起来它不受支持。我也没有看到很多机会进行monkeypatching它。

https://github.com/rails/rails/blob/c2193c11ad215d3a2d7d35960630b3e1902a5082/activeresource/lib/active_resource/base.rb#L1359

尽管如此,它仍然是一个很好的补丁,特别是现在,activeresource被分割成了自己的4.0宝石。

<强>更新

实际上,您可以使用原始帖子请求指定标头。你不能用更为抽象的方法来指定它们,如create

https://github.com/rails/rails/blob/c2193c11ad215d3a2d7d35960630b3e1902a5082/activeresource/lib/active_resource/connection.rb#L97