我想在我的应用程序中创建静态网页 - 条款和条件,关于,隐私等...我可以创建空白页并将它们放在公共文件夹中,然后将"href"链接放在它们的位置。这是否被视为最佳实践?还是我应该为每个控制器使用 rails g 控制器?有什么区别...
HighVoltage 是一颗宝石,可以帮助您
准确了解:https://github.com/thoughtbot/high_voltage
它使处理这些场景变得非常容易。 从文档中:
编写静态页面并将它们放在 RAILS_ROOT/app/views/pages 目录中。
$ mkdir app/views/pages
$ touch app/views/pages/about.html.erb
在那里放置一些有趣的东西后,你可以从应用程序中的任何位置链接到它:
link_to "About", page_path("about")
如果您喜欢更明确的样式,这也将起作用:
link_to "About", page_path(:id => "about")
我会制作一个site
控制器,该控制器具有针对每个公共页面的操作,假设公共方面不会有大量内容。如果有更多,我会研究某种CMS。无论如何,创建一个site
控制器,然后为所需的每个页面创建路由和模板。这样您就可以使用布局,并在需要时使用 Rails 助手。
当然,您可以创建 about.html
等并将它们放入public
文件夹中。 如果它只是一个完全静态的网页,那么控制器不会增加任何价值。 正如您所期望的那样,子目录在 public
文件夹中也可以正常工作。
我通过使用这个很棒的 GEM https://github.com/thoughtbot/high_voltage 解决了它
我刚刚意识到这实际上应该很容易,希望仔细考虑一下:
创建一条路线,例如:
match '/about' => "static#about"
~ 然后创建一个简单的控制器,在本例中为 app/controllers/static_controller.rb
class StaticController < ApplicationController
respond_to :html
def about
# nuttin
end
end
~ 现在我们只需要一个视图:(/app/views/static/about.html.erb )
Hey!
排序
创建静态页面"主页"
$ rails generate controller Pages home
添加了一个新的控制器"页面",其中包含操作"主页"。将新路由插入到"config/routes.rb"中
# config/routes.rb
get "pages/home"
生成指向页面"主页"的链接
<%= link_to "Home", :controller => "pages", :action => "home" %>