为 rails 应用重新映射根目录
Remap root for rails app
我在内部服务器上的 Rails 应用程序上安装了一个 Ruby,需要应用程序根目录看起来像一个目录。
校园 IT 部门已安排所有请求直接发送至 http://myinstitution.edu/mydepartment/servicename are routed to http://myinternalserver.edu/
这会导致错误:没有路由匹配 [GET] "/mydepartment/servicename"
我试过修改routes.rb:
match "/mydepartment/servicename", to: "home#index", via: [:get, :post]
但这会导致错误:未定义的局部变量或方法 `root_url' for ...
我加了
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,它的路由也需要进行调整。有关详细信息,请参阅 How To: Change the default sign_in and sign_out routes。
我在内部服务器上的 Rails 应用程序上安装了一个 Ruby,需要应用程序根目录看起来像一个目录。
校园 IT 部门已安排所有请求直接发送至 http://myinstitution.edu/mydepartment/servicename are routed to http://myinternalserver.edu/
这会导致错误:没有路由匹配 [GET] "/mydepartment/servicename"
我试过修改routes.rb:
match "/mydepartment/servicename", to: "home#index", via: [:get, :post]
但这会导致错误:未定义的局部变量或方法 `root_url' for ...
我加了
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,它的路由也需要进行调整。有关详细信息,请参阅 How To: Change the default sign_in and sign_out routes。