so etwas wie dies tun die Kehrseite hat potenziell zu unerwartetem Verhalten führen, wenn jemand anderes zu suchen kommt Bei Ihrem Code (dh bis sie Ihre überschriebene Methode entdecken, fragen sie sich vielleicht, warum sie sich wie dasherize false verhält, wenn dies nicht explizit angegeben wurde.) Das heißt, in ApplicationController oder einem Ihrer spezifischen Controller können Sie die Rendermethode überschreiben.
z.B. so etwas wie:
class MyController < ApplicationController
def render(options = nil, extra_options = {}, &block)
options ||= {} # initialise to empty hash if no options specified
options = options.merge(:dasherize => false) if options[:xml]
super(options, extra_options, &block)
end
end
Wenn Sie dasherize erlauben immer noch in Ihre Anrufe overridable zu sein, Sie zu machen, in der anderen Richtung, um die Hash-merge tun z.B.
options = {:dasherize => false}.merge(options)
hoffentlich sollte es keinen anderen Teil der Anwendung brechen, die die Renderfunktion verwendet ... es sollte nur so funktionieren, wenn es von einem Controller aufgerufen wird (ich denke, das ist der einzige Ort, von dem es sowieso abgerufen wird.) – luca