Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Rails 4自定义路径辅助程序_Ruby_Apache_Ruby On Rails 4_Subdomain_Helpers - Fatal编程技术网

Ruby Rails 4自定义路径辅助程序

Ruby Rails 4自定义路径辅助程序,ruby,apache,ruby-on-rails-4,subdomain,helpers,Ruby,Apache,Ruby On Rails 4,Subdomain,Helpers,我想在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: :lo

我想在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
def
路径=超级
gsub(%r{^/cs1337}',)
终止
我知道路径助手是动态生成的,但我不知道从哪里开始。。。我甚至找不到路径助手是在哪个模块中生成的


谢谢你能提供的任何帮助

简短回答:不,据我所知

我找不到任何东西可以让你知道Rails截获的路径与助手给你的路径不同。我认为Rails不适合.htaccess重写

是否需要文件夹名称位于路径中?如果没有,我将删除
范围'/cs1337'do
,并使用类似于do的方法来执行特定于域的路由


如果您需要它,我建议最终用户可以查看“cs1337.mysite.com/cs1337/path”。

DoubleFelix,是的,我确实需要路径中的文件夹名称。我必须在我的
public\u html
目录中使用一个符号链接,以链接到rails应用程序的基本文件夹。很抱歉,但我认为您的设置是在自找麻烦。您的路由情况非常复杂,在某种程度上我认为rails无法弥补。