我知道您可以在config/application.rb
中为Rails4 +应用程序设置默认的标头应用程序范围,但是在旧版本的Rails中(如Rails3)可以接受的方法是什么?
此刻,我在application_controller.rb中将它们设置为before_filter方法,但是我认为这是不好的做法和性能 -影响
答案 0 :(得分:1)
在Rails 3中,过滤器似乎是正确的方法。但是,您可能可以用猴子来修补它。您可能需要检查是否已更改。但是looking at this code在3.2稳定版上,您可以在此处设置标题。即使这可行,也可能不会对性能产生任何影响。
您可以尝试将其放在以下的猴子补丁中:
# config/initializers/monkey_patch_headers.rb
class ActionController::Metal
def initialize
@_headers = {
"Content-Type" => "text/html",
"Foo" => "bar" # or whatever you want to add
}
@_status = 200
@_request = nil
@_response = nil
@_routes = nil
super
end
end
现在,在任何控制器操作中,您都应该在@_headers
中看到它们。
我不知道这是否会破坏其他任何东西。可能值得一试。