Se definisco un percorso all'interno di un modulo, in questo modo:
class DrivenSignupPlugin::AccountController < ApplicationController
...
end
Quindi tutte le chiamate a url_for
(Compreso redirect_to
) al suo interno verrà aggiunto il prefisso :controller
parametro con driven_signup_plugin/
.
Questo non è il comportamento desiderato poiché questo controller utilizza molti percorsi al di fuori di esso. Per esempio, render_access_denied
è un metodo da ApplicationController
.
risposte:
0 per risposta № 1Per ovviare a questo, aggiungere questo metodo al controller:
def default_url_options
# avoid rails" use_relative_controller!
{use_route: "/"}
end
Per Rails 4.2+, è necessario qualcosa di più complicato:
# inherit routes from core skipping use_relative_controller!
def url_for options
options[:controller] = "/#{options[:controller]}" if options.is_a? Hash and options[:controller]
super options
end
helper_method :url_for