我想在Rails 4中自定义路径助手。
我有一个包含多个子域的Site5网站(使用Apache服务器)。我在.htaccess
文件中重写了规则,将文件夹名称添加到网址中。例如
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
我知道路径助手是动态生成的,但我无法弄清楚从哪里开始...我甚至无法找到生成路径助手的模块。
感谢您提供的任何帮助!
答案 0 :(得分:0)
简短回答:不,据我所知。
我找不到任何可以让你的路线Rails拦截与帮助者给你的路径不同的东西。我不认为Rails可以很好地重写.htaccess重写。
您是否需要文件夹名称在路径中?如果没有,我会删除scope '/cs1337' do
并使用类似this StackOverflow post的内容来执行特定于域的路由。
如果您需要,我建议最终用户看到“cs1337.mysite.com/cs1337/path”。