如果您想在 Rails 应用程序中创建静态页面,我会查看一些资源。
上面的最后一个链接确实是静态页面的首选,所以我将解决您关于嵌套问题的更具体部分。
如果你想将一个 url 映射到一个控制器动作(和一个视图),你可以简单地将它添加到你的路由文件中。如果您希望将其命名为命名空间,您只需在:pages
将传递特定船名的符号前面添加命名空间即可。
get "ships/:pages" => "static#show"
# so going to www.example.com/ships/titanic
# will show your app/view/static/ships/titanic.html.erb page
替代方案:用于静态页面的 Gem
或者,thoughtbot 创建了一个名为high_voltage的 gem来处理一些设置。我没有使用它,但它可能值得一看。
路线警告
但是,对于您拥有的路由条目,我会提醒您它可能会产生意想不到的后果,因为如果有人输入的路由与您拥有的文件不匹配,它将引发错误。
如果你走这条路线,我建议你阅读一条包罗万象的路线。你可以:
或者您认为对您的用户最有帮助的任何其他内容。
再一次,有一些警告,因为这将捕获所有错误并忽略其他项目,如 rails 引擎(据我了解)。
替代架构
我可以根据您在评论中的回答修改此部分,但您似乎想在此类别中添加大量页面。
由于这些都是船,我假设它们在每艘周围都有相似的数据点,您可以将这些信息保存在数据库中,然后创建一个 Ship 脚手架来像普通的 Rails 项目一样管理它。
这将允许您: