【发布时间】: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 作为路由。我会告诉你我想要的结果。
我希望能够访问 www.example.com/states 并获得以下列表 状态(简单 - 在我的 StatesController 中使用
@states = State.all索引操作并在视图中循环它们)。在州列表中,我单击宾夕法尼亚州。我希望读取结果 url www.example.com/pa 并列出与宾夕法尼亚州相关的所有团队。 (这些通过表单添加到数据库中,并与选择下拉列表关联到它所属的状态)
当我访问该网址时,我会列出所有宾夕法尼亚球队的名单 点击 Eagles,我希望 URL 为 www.example.com/pa/eagles。
在此页面上,我有一个个人资料、花名册和技能的导航列表 与该团队相关联,当每个都被点击时,带您到 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