【问题标题】:Nested Routes alternative嵌套路由替代
【发布时间】:2013-07-20 09:03:53
【问题描述】:

我在嵌套资源时遇到了一些问题。我想知道是否有更好的做事方式。

我有一个包含三个资源用户、列表和任务的待办事项列表应用程序。每个用户都有自己的待办事项列表。

我的问题是我还能如何设置关联和路由以防止我在路由文件中嵌套三层。

resources :users do
 resources :list do
  resources :task do
  end
 end
end

我想阻止这种情况。干杯

【问题讨论】:

  • 用户可以访问其他用户的列表吗?
  • 没有其他用户不能。

标签: ruby-on-rails routes nested


【解决方案1】:

由于用户只能看到她/他自己的列表和任务,因此您不必嵌套这些资源。在你的路由文件中分别定义它们:

resources :users

resources :lists do
  resources :tasks
end

并从您的身份验证框架中检索当前用户:

class ListsController < ApplicationController

  def index
    @lists = current_user.lists
  end

end

【讨论】:

    【解决方案2】:

    可能重复: Rails 3 level deep nested resources

    尝试使用 :shallow 选项:

    resources :users, shallow: true do 
      resources :lists, shallow: true do
        resources :task
      end
    end
    

    【讨论】:

    • 不知道如何为此类主题的搜索命名。浅选项将做什么以及我必须对控制器操作进行哪些更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2020-07-18
    • 2011-10-10
    • 2018-05-29
    • 2017-10-31
    • 2019-03-13
    相关资源
    最近更新 更多