如果我在模块中定义一个路径,如下所示:
class DrivenSignupPlugin::AccountController < ApplicationController
...
end
然后,对其中url_for
(包括redirect_to
)的所有来电都会在:controller
参数前加上driven_signup_plugin/
。
这不是所需的行为,因为此控制器在其外部使用许多路径。例如,render_access_denied
是来自ApplicationController
的方法。
答案 0 :(得分:0)
要解决此问题,请将此方法添加到控制器:
def default_url_options
# avoid rails' use_relative_controller!
{use_route: '/'}
end
对于Rails 4.2+,需要更复杂的东西:
# 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