Rails嵌套静态页面

时间:2012-12-15 00:45:23

标签: ruby ruby-on-rails-3

我的问题是如何在rails中创建嵌套的静态页面?我是Ruby on Rails的新手,“自学成才”,一直在寻找这个答案。任何帮助将不胜感激,谢谢。

例如:

  • 网站根目录 ---船舶(http://wwww.example.com/ships)
    ------船舶类型(http://wwww.example.com/ships/types-of-ships)


目录结构:

应用程序/视图/静态/船舶/类型-的-船


当前静态控制器

类StaticController< ApplicationController的   def show     渲染参数[:pages]   结束 端


路线

获取“/:pages”=> “静态#秀”

1 个答案:

答案 0 :(得分:4)

如果你想在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

替代方案:静态页面的宝石

或者,thinkbot创建了一个名为high_voltage的gem来处理一些设置。我没有用它,但值得一看。

路线警告

根据您的路线条目,我会提醒您它可能会产生意想不到的后果,因为如果有人输入的路线与您拥有的文件不匹配,则会产生错误。

如果你走这条路,我建议你阅读一条全能路线。你可以:

或者您认为对您的用户最有帮助的任何其他内容。

再一次,有一些警告,因为这会捕获所有错误并忽略其他项目,例如rails引擎(根据我的理解)。

替代架构

我可以根据您在评论中的答案修改此部分,但您似乎想要在此类别中添加大量页面。

由于这些都是船只,我认为它们周围有相似的数据点,您可以将这些信息保存在数据库中,只需创建一个Ship脚架来管理它,就像普通的Rails项目一样。

这将允许您:

  • 存储任意数量的船只
  • 有一个模板#show页面
    • 这样可以保持您的观看次数干净,并且可以更轻松地更改模板