我有一个有州的申请。每个州都有很多团队。每个团队都有一个简介,一个名册和一个技能。目前,每个都设置为模型(州,团队,简介,名册,技能)。例如:
州模式:
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
......等等。
我使用了脚手架生成器,它使用资源:状态,:团队,:个人资料,:名单,:路线技能。我会告诉你我想要的结果。
我希望能够访问www.example.com/states并列出一份
states(easy - 我的StatesController中带有@states = State.all
的索引操作,并在视图中循环显示)。
在州名单中,我点击宾夕法尼亚州。我想要生成的URL阅读 www.example.com/pa并列出与宾夕法尼亚州相关的所有团队。 (这些是通过表单添加到数据库中,并与其所属的州的选择下拉列表相关联)
当我在那个网址时,列出了所有宾夕法尼亚州的球队和我 点击老鹰,我想要的URL www.example.com/pa/eagles。
在此页面上,我有个人资料,名册和技能的导航列表 与该团队相关联以及每次点击时,都会带您前往 www.example.com/pa/eagles/profile,分别显示该视图。
你可以想象,使用脚手架,当我访问www.example.com/states时,我会得到状态列表,但是当我点击宾夕法尼亚州,然后点击老鹰队时,我会得到www.example.com/eagles ,这绝不会通知用户Eagles所属的州。我希望这种格式用于描述目的,因为有不同的状态具有相同的团队名称。
我无法理解的是,这只是配置路线的问题吗?或者是我的控制器中的这种配置,还是两者都有?对于这样的问题,使用脚手架是不是有益吗?鉴于此问题,请告诉我如何创建解决方案以获得我想要的结果。如果需要,我可以创建一个要点,但它实际上只包含一个标准的rails g scaffold State name:string
等等,每个模型和调整后的表单都可以将团队,配置文件等输入到数据库中。
答案 0 :(得分:0)
它是配置路由和控制器的问题。你需要嵌套的路由(资源)http://guides.rubyonrails.org/routing.html#nested-resources和:path选项来覆盖url的外观以及你可以从http://guides.rubyonrails.org/getting_started.html#adding-a-second-model 配置控制器的想法