2015-06-26 23 views
0

如果我定義的路徑的模塊內,像這樣:控制器模塊更換內部定義的所有路由到其範圍

class DrivenSignupPlugin::AccountController < ApplicationController 
    ... 
end 

然後所有的呼叫,url_for(包括redirect_to)的內部,將前綴:controller參數與driven_signup_plugin/

這不是所期望的行爲,因爲此控制器在其外部使用許多路由。例如,render_access_denied是來自ApplicationController的方法。

回答

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 
相關問題