繁体   English   中英

重新映射Rails应用程序的根目录

[英]Remap root for rails app

我已经在内部服务器上安装了Ruby on Rails应用程序,并且需要应用程序根目录才能看起来像目录。

校园IT已进行安排,以便将所有指向http://myinstitution.edu/mydepartment/servicename的请求都路由到http://myinternalserver.edu/

这将导致错误:没有路由匹配[GET]“ / mydepartment / servicename”

我试过修改routes.rb:

match "/mydepartment/servicename", to: "home#index", via: [:get, :post]

但这导致错误:未定义的本地变量或方法“ root_url”用于...

我加了

get '/mydepartment/servicename' => redirect("/")

但这会导致所有请求都重定向到http://myinstitution.edu/#,而不是将请求发送到我的服务器的目录

如何使它看起来像我的实际服务是基于目录的? 我以前没有使用过RoR。 谢谢。

弄乱之前的原始routes.rb:这是弄乱之前的原始:

Rails.application.routes.draw do
  root to: "catalog#index"
  blacklight_for :catalog
  Blacklight::Marc.add_routes(self)
  devise_for :users
end

在您的routes.rb您可以使用范围使定义路由变得更加容易:

Rails.application.routes.draw do
  root to: "catalog#index"
  blacklight_for :catalog
  Blacklight::Marc.add_routes(self)
  devise_for :users

  scope "/mydepartment/servicename" do
    match '/', to: "home#index", via: [:get, :post]
    # ... more routes
  end
end

您仍然需要root to:指向有效的控制器和操作。 您收到的错误, undefined local variable or method 'root_url' for ...的错误是由于您的routes.rb缺少此子句。

由于您使用的是Devise,因此还需要调整其路线。 有关更多信息,请参见如何:更改默认的sign_in和sign_out路由

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM