谁可以帮助我对Ruby on Rails的怀疑。假设我有3页(即主页,关于,联系我们)我想要创建。每个页面都应该有不同的模板。我们在ROR知道在布局目录中有一个“application.html.erb
”。
我在application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>Demo Oditek</title>
<%= stylesheet_link_tag 'application', media: 'all',
'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/r29/html5.min.js">
</script>
<![endif]-->
</head>
<body>
<header class="navbar navbar-fixed-top navbar-inverse">
<div class="container">
<%= link_to "sample app", '#', id: "logo" %>
<nav>
<ul class="nav navbar-nav pull-right">
<li><%= link_to "Home", '#' %></li>
<li><%= link_to "Help", '#' %></li>
<li><%= link_to "Log in", '#' %></li>
</ul>
</nav>
</div>
</header>
<div class="container">
<%= yield %>
</div>
</body>
</html>`
标记<%= yield %>
呈现<div class="container"></div>
内的所有网页
但我需要不同的模板,并联系我们页面。如何创建这些。请提供一些想法或参考链接。
答案 0 :(得分:6)
您可以为文件夹视图/布局添加更多布局。现在您只有views / layouts / application.html.erb。
您可以添加views/layouts/home.html.erb
或views/layouts/dashboard.html.erb
。
要选择要使用的布局,您可以在控制器中为所有操作定义它,或者只是覆盖特定视图的布局。
class SomeController < ApplicationController
# all other actions will have application layout
layout 'dashboard', :only => [:action_1, :action_2]
end
答案 1 :(得分:2)
在您的控制器中:
def about
@my_model = MyModel.where('whatever')
render layout: 'about'
end
然后在布局中创建一个名为about.html.erb