我是否需要Rails中任何路由的控制器?

时间:2015-01-13 10:10:29

标签: html ruby-on-rails ruby static embedded-ruby

我正在为我的应用中的“联系我们”页面实施html模板。我想知道我是否可以以某种方式传递该页面的链接,这将没有任何行为,而不必生成似乎不可能的新控制器。我试图将模板放在公共文件夹中,然后将链接传递给/ public / contact,作为模板contact.html.erb,但rails返回未初始化的控制器路由错误。

这是我在routes.rb文件中设置的内容

  

获取'公开/联系'

这是带有我的链接的application.html.erb

   </div>
<ul>
  <li><a href="http://localhost:3000">HOME</a></li>
  <li><a href="http://localhost:3000/info/news">NEWS</a></li>
  <li><a href="http://localhost:3000/info/faq">FAQ</a></li>
  <li><a href="http://localhost:3000/public/contact">CONTACT US</a></li>
</ul>

请注意,我们还有路径info / news和info / faq

我已经生成了一个控制器信息来处理所有这些静态页面。我想知道这是一个好的做法还是我应该用其他更干燥的方式来实现这个?

2 个答案:

答案 0 :(得分:0)

实际上,为静态页面设置控制器也是一种很好的方法,您实际上可以为页面生成一个控制器来处理静态页面,例如,联系等轨道生成控制器页面联系

你只需要访问     localhost:3000 / pages / contact

然后您的观点将在 app / views / pages / contact.html.erb

的routes.rb 得到&#34;页面/联系&#34; 得到&#34;页面/关于&#34;

答案 1 :(得分:0)

你需要为一个请求生成一个新的控制器。建议的方法是在你的公共/实用程序控制器中添加一个新动作,并带有一个get请求来显示我们。  例如:match '/about' => 'pages#about' 这很好,因为您可以将页面缓存到提升性能,同时您可以将其设置为动态(html.erb)

假设静态文件(仅限html)位于public文件夹中, ADD 一个锚标记,可直接使用target=_blank属性在新页面中打开它。

<%= link_to "About Us", "/about_us.html" ,:target=>"_blank"%>