0

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

状态模型:

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. 当我在那个 URL 上,带有所有宾夕法尼亚球队的列表并单击 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每个模型的标准等,并调整表单以将团队、配置文件等输入数据库。

4

1 回答 1

0

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

于 2013-08-11T17:50:22.250 回答