正确路由我的应用程序

时间:2013-08-11 16:46:15

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

我有一个有州的申请。每个州都有很多团队。每个团队都有一个简介,一个名册和一个技能。目前,每个都设置为模型(州,团队,简介,名册,技能)。例如:

州模式:

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

......等等。

我使用了脚手架生成器,它使用资源:状态,:团队,:个人资料,:名单,:路线技能。我会告诉你我想要的结果。

  1. 我希望能够访问www.example.com/states并列出一份 states(easy - 我的StatesController中带有@states = State.all的索引操作,并在视图中循环显示)。

  2. 在州名单中,我点击宾夕法尼亚州。我想要生成的URL阅读 www.example.com/pa并列出与宾夕法尼亚州相关的所有团队。 (这些是通过表单添加到数据库中,并与其所属的州的选择下拉列表相关联)

  3. 当我在那个网址时,列出了所有宾夕法尼亚州的球队和我 点击老鹰,我想要的URL www.example.com/pa/eagles。

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

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

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

1 个答案:

答案 0 :(得分:0)

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