【问题标题】:Rails 5 nested routesRails 5 嵌套路由
【发布时间】:2019-01-09 09:23:03
【问题描述】:

我有三个模型ProjectCardTask

项目 has_many :cards

卡片 has_many :tasks

我已经定义了构建卡片的路线,如下所示:

resources :projects, except: [:new, :edit, :show] do
    resources :cards do
      resources :tasks
    end
end

它将为 cards 创建路径:projects/:project_id/cards/

它将为 tasks 创建路径:projects/:project_id/cards/:card_id/tasks

我需要的是: Card 路由应该嵌套到 Project。 (我目前有)和 Task 路由应该嵌套到像 /cards/:card_id/tasks 这样的 Card (我需要)。

我怎样才能做到这一点?

提前致谢!

【问题讨论】:

  • 卡片有很多任务?
  • @ray,是的。我已经在问题上提到了这一点

标签: ruby-on-rails routing ruby-on-rails-5 nested-routes


【解决方案1】:
resources :projects, except: [:new, :edit, :show] do
    resources :cards
end
resources :cards do
    resources :tasks
end

这就是你要找的东西

【讨论】:

    【解决方案2】:

    你可以这样做,

    resources :projects, except: [:new, :edit, :show] do
        resources :cards
    end
    

    并进一步尝试为任务定义每条路线,

    get '/cards/:card_id/tasks', to: 'tasks#index'
    

    我没有测试但应该可以工作,遗憾的是您必须为每条特定路线定义它。

    【讨论】:

    • 这样我需要手动添加所有的任务路由,比如编辑、创建、更新、销毁等...
    • 我希望有更好的选择,但要使其临时工作,您可以在上面尝试。
    猜你喜欢
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2018-12-28
    • 2015-11-22
    相关资源
    最近更新 更多