【问题标题】:Rails routes adding resource_id to urlRails路由将resource_id添加到url
【发布时间】:2015-01-16 13:32:03
【问题描述】:

您好,我有一个 Rails 应用程序,我在其中使用不同的命名空间,例如用户、管理员等。

我的 url 在用户命名空间下为

'/user/:controller_name' but i want to 

像这样使用它

'/library/:library_id/user/:controller_name'

用户与库是一对一的关系。我可以获取当前用户的库 ID。

当我尝试在路径中使用路径参数时

namespace :user, path: "library/user" do 
  ...
end

它正在工作,但我无法获得 id。

可以这样做吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 routing


    【解决方案1】:

    这不起作用?

    namespace :user, path: "library/:library_id/user" do 
      ...
    end
    

    【讨论】:

    • 感谢您的回复,但是当我这样做时,我需要为应用程序中的每个 url 添加参数。例如,当我使用它时,我有 link_to user_group_path(group),我需要将它们全部用作 user_group_path(@library_id,group)。有没有可能在不更改链接助手的情况下实现的方法
    【解决方案2】:

    我猜,这就是你要找的东西

      resources :libraries do
        namespace :users do
          resources :resource_name
        end
      end
    
    
    # Output for me
    /libraries/:library_id/users/controller_name/new(.:format)
    /libraries/:library_id/users/controller_name/:id/edit(.:format)
    . 
    .
    

    【讨论】:

      【解决方案3】:

      这应该适合你:

      resources :libraries do
        member do
          resources :user do
            collection do
              resources :controller_name
            end
          end 
        end 
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-25
        • 2011-07-20
        • 1970-01-01
        • 1970-01-01
        • 2016-01-18
        • 2018-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多