【问题标题】:Routing my application properly正确路由我的应用程序
【发布时间】:2013-08-11 16:46:14
【问题描述】:

我有一个有状态的应用程序。每个州都有很多球队。每支球队都有一份档案、一份名册和一项技能。目前,这些中的每一个都设置为模型(状态、团队、个人资料、名册、技能)。例如:

状态模型:

class State < ActiveRecord::Base
  has_many :teams
end

团队模型:

class Team < ActiveRecord::Base
  belongs_to :state
  has_one :profile
  has_one :roster
  has_one :skill
end

个人资料模型:

class Profile < ActiveRecord::Base
  belongs_to :team
end

...等等。

我使用了脚手架生成器,它使用资源 :states、:teams、:profiles、:rosters、:skills 作为路由。我会告诉你我想要的结果。

  1. 我希望能够访问 www.example.com/states 并获得以下列表 状态(简单 - 在我的 StatesController 中使用 @states = State.all 索引操作并在视图中循环它们)。

  2. 在州列表中,我单击宾夕法尼亚州。我希望读取结果 url www.example.com/pa 并列出与宾夕法尼亚州相关的所有团队。 (这些通过表单添加到数据库中,并与选择下拉列表关联到它所属的状态)

  3. 当我访问该网址时,我会列出所有宾夕法尼亚球队的名单 点击 Eagles,我希望 URL 为 www.example.com/pa/eagles。

  4. 在此页面上,我有一个个人资料、花名册和技能的导航列表 与该团队相关联,当每个都被点击时,带您到 www.example.com/pa/eagles/profile 分别显示该视图。

您可以想象,使用脚手架,当我访问 www.example.com/states 时,我会得到一个州列表,但是当我点击宾夕法尼亚州,然后点击 Eagles 时,我会得到 www.example.com/eagles ,这绝不会通知用户 Eagles 属于哪个州。我想要这种格式用于描述目的,因为有不同的状态具有相同的团队名称。

我无法理解的是,这只是配置我的路线的问题吗?或者是我的控制器中的配置,还是两者兼而有之?对于这样的问题,使用脚手架是不是没有好处?鉴于这个问题,请告诉我您将如何创建解决方案来获得我想要的结果。如果需要,我可以创建一个要点,但它实际上只包含每个模型的标准 rails g scaffold State name:string 等,并调整表单以将团队、个人资料等输入数据库。

【问题讨论】:

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


    【解决方案1】:

    这是配置路由和控制器的问题。你需要嵌套路由(资源)http://guides.rubyonrails.org/routing.html#nested-resources 和 :path 选项来覆盖 url 的外观以及配置控制器的想法,您可以从 http://guides.rubyonrails.org/getting_started.html#adding-a-second-model 获取配置控制器

    【讨论】:

      猜你喜欢
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      相关资源
      最近更新 更多