7

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

4

2 回答 2

6

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

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

于 2014-02-08T17:16:27.520 回答
2

我刚刚签入了 3.2.8 的代码,好像不支持。我也看不到猴子修补它的太多机会。

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

不过,这将是一个很棒的补丁,尤其是现在 activeresource 已被拆分为 4.0 的自己的 gem。

更新

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

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

于 2012-12-13T01:05:37.310 回答