根据一个RoR数据库生成路线和视图?

时间:2018-09-11 18:02:26

标签: ruby-on-rails

道歉,这是一个非常新手的问题,但最近两个星期我一直在努力在业余时间里解决这个问题。想通了,我看看是否有更聪明的想法可以提供帮助。

想法:

  • 我有一个包含州,市和一些信息的RoR数据库
  • 我想为州建立一个视图,为城市建立一个视图
  • 并使路由自动指向“ .com / state / city”或“ .com / state”

我该怎么做:

  1. 与硬编码相比,基于此数据库创建自动路由 个别路线?
  2. 为“城市”创建一个视图,为“城市”创建一个视图 状态?

如果这是一个非常愚蠢的问题,谢谢您。 :)

编辑:此外,Github中的任何示例应用程序都很棒。

2 个答案:

答案 0 :(得分:1)

无论您是否使用某种代码生成方式,我都不建议将它们硬编码到路由文件中。 Rails允许通用路由匹配。例如:

get '/:state', to: 'states#show'
get '/:state/:city', to: 'city#show'

注意:这是一个非常通用的匹配,因此请确保您的路由文件顺序正确,以免捕获其他特定路由。

答案 1 :(得分:1)

我同意Msencenb的观点,即在路由文件中对其进行硬编码不是可行的方法。但是,如果您不小心,则/:state /:city的路由将匹配两部分的内容,因为它非常通用(如前所述)。

您可以使用类似friendly_id的名称。它在自述文件顶部使用的示例实际上是状态。

自述文件:

With FriendlyId, it's easy to make your application use URLs like:

http://example.com/states/washington
instead of:

http://example.com/states/4323454

然后您可以为您的城市创建一条路线,例如:

http://example.com/states/minnesota/city/minneapolis