【发布时间】:2015-08-11 16:52:10
【问题描述】:
我想在 Rails 4 中自定义我的路径助手。
我有一个包含多个子域的 Site5 网站(使用 Apache 服务器)。我的 .htaccess 文件中有重写规则,它将文件夹名称添加到 url。例如
cs1337.mysite.com/login
被改写为
cs1337.mysite.com/cs1337/login
在 routes.rb 中,我在 routes.rb 中添加了一个作用域:
scope '/cs1337' do
get '/login', to: 'sessions#new', as: :login
# etc.
end
这给了我正确的路由。一切正常,但令人讨厌的是我所有的路径助手都有'/cs1337'前缀,这是不必要的,因为.htaccess重写规则将其重新添加。例如,
login_path # => /cs1337/login
只有当
login_path # => /login
是必须的。
我想覆盖所有路径助手以去除前缀,使用类似
def <override all path helpers>
path = super
path.gsub(%r{^/cs1337}, '')
end
我知道路径助手是动态生成的,但我不知道从哪里开始......我什至找不到路径助手是在哪个模块中生成的。
感谢您提供的任何帮助!
【问题讨论】:
标签: ruby apache ruby-on-rails-4 subdomain helpers