2

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

例如:

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


目录结构:

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


电流静态控制器

class StaticController < ApplicationController def show render params[:pages] end end


路线

得到“/:pages”=>“静态#show”

4

1 回答 1

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

替代方案:用于静态页面的 Gem

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

路线警告

但是,对于您拥有的路由条目,我会提醒您它可能会产生意想不到的后果,因为如果有人输入的路由与您拥有的文件不匹配,它将引发错误。

如果你走这条路线,我建议你阅读一条包罗万象的路线。你可以:

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

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

替代架构

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

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

这将允许您:

  • 存储任意数量的船只
  • 有一个模板#show页面
    • 这使您的视图保持干燥并使更改模板变得更加容易
于 2012-12-15T02:16:19.160 回答