【问题标题】:Ruby on Rails: link_to is missing part of URLRuby on Rails:link_to 缺少部分 URL
【发布时间】:2016-02-23 13:38:51
【问题描述】:

我是 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>

是否可以在某个地方配置它仅用于生产?

我希望你明白我的意思,并为我的英语不好感到抱歉!

感谢阅读, 亚历克斯

【问题讨论】:

    标签: ruby-on-rails routing


    【解决方案1】:

    你可以通过设置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,否则您将永远不会被允许坐在酷儿童桌旁。

    【讨论】:

    • 嗨,马克斯!感谢您的回答,但这没有效果! :-( 我仍然得到没有 'sub_directory' 的 URL。
    • 确实如此 - 我猜你没有重新启动服务器或正确设置它。 guides.rubyonrails.org/configuring.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    相关资源
    最近更新 更多