在Active Resource请求中设置标头

7
我有一个Active Resource模型,需要在保存和更新数据时设置头部信息。问题是每个用户的头部信息不同,因此无法在模型级别设置。我看到了一些设置标题的例子,如findget或自定义方法,但没有办法将它添加到一个@myclass.save中。类似于prefix_options但用于设置头部信息会更理想(@myclass.prefix_options [:myvar] ='abcd'),但我没有找到类似的东西。如果有什么建议,请告诉我。
2个回答

6

这确实可以根据某些常量数据设置标题,但是它不允许您从当前请求中获取任何内容,对吧?(例如request.host或会话变量)- 这可能不是OP想要的,但只是想澄清解决方案的范围,因为我正在寻找一种方法来做后者。 - mltsy
你能把你链接的要点粘贴在这里吗?以防将来URL无法使用。 - tolgap

2
我刚刚查看了3.2.8版本的代码,似乎不支持它。我也没看到太多机会来进行猴子补丁。
这里有一个链接:https://github.com/rails/rails/blob/c2193c11ad215d3a2d7d35960630b3e1902a5082/activeresource/lib/active_resource/base.rb#L1359
虽然现在activeresource已经被拆分成自己的gem(4.0),但提交一个很好的补丁仍然是一个好主意。
更新:
实际上,您可以使用原始POST请求指定标头。 您只是无法使用像create这样的更抽象的方法指定它们。
这里有一个链接:https://github.com/rails/rails/blob/c2193c11ad215d3a2d7d35960630b3e1902a5082/activeresource/lib/active_resource/connection.rb#L97

谢谢你的回复,约翰。这正是我已经在考虑的,所以我写了一个扩展aRes的类,并覆盖了save和update_attributes方法。我的模型将继承该类。虽然远非理想,但似乎可以工作。除非这是设计上的问题,否则我可能会将其提交为aRes的补丁。我会保持开放状态一段时间,以防有人知道其他替代方案。 - d-coded

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接