我刚接触ruby on rails并且我有一个关于link_to
的问题。
我有一个像这样的link_to:
<%= link_to 'User...', {:controller => 'users', :action => 'userManagement'} %>
结果如下:
<a href="/users/userManagement">User...</a>
在开发环境中工作正常。
但是在我的生产环境中,我之前有一个URL重写,它指向我的rails服务器:
https://my-production-url/subdirectory
要让link_to从上面工作,我需要在路径中也有subdirectory
:
<a href="subdirectory/users/userManagement">User...</a>
是否可以将其配置为仅用于生产?
我希望你明白我的意思,并抱歉我的英语不好!
感谢阅读, 亚历
答案 0 :(得分:0)
您可以通过设置action_controller.relative_url_root
来完成此操作。
Rails.application.configure do
# ...
config.action_controller.relative_url_root = '/sub_directory'
end
您可以将其放在/config/environments/production.rb
。
在旁注中,您的路线非常特殊。通常,管理部分的路由如下所示:
Rails.application.routes.draw do
namespace :admin, module: :admin do
resources :users
end
end
这将创建以下路由($ rake routes
):
Prefix Verb URI Pattern Controller#Action
admin_users GET /admin/users(.:format) admin/users#index
POST /admin/users(.:format) admin/users#create
new_admin_user GET /admin/users/new(.:format) admin/users#new
edit_admin_user GET /admin/users/:id/edit(.:format) admin/users#edit
admin_user GET /admin/users/:id(.:format) admin/users#show
PATCH /admin/users/:id(.:format) admin/users#update
PUT /admin/users/:id(.:format) admin/users#update
DELETE /admin/users/:id(.:format) admin/users#destroy
考虑资源 - 而不是页面。并且不要在您的路线或方法名称中使用camelCase
,否则您将永远不会被允许坐在酷儿童餐桌旁。