Ruby on Rails layout

只能⼀个版型吗?
如果你喜欢,可以有多种款式的版型,预设的版型是
app/views/layouts/application.html.erb 。举个例⼦来说,例如我想要增加
⼀款给後台专⽤的版型,可以在 app/views/layouts/ ⽬录下新增⼀个
backend.html.erb ,内容如下:

<!DOCTYPE html>
<html>
<head>
15 Layout,Render 与 View Helper
225
<title>网站管理系统</title>
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-tu
rbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-tr
ack': 'reload' %>
</head>
<body>
<h1>我是後台</h1>
<div class="container">
<%= yield %>
</div>
</body>
</html>

要套⽤这个版型有几种做法:

  1. 整个 Controller 都套⽤同⼀个版型
    在 Controller 里使⽤ layout ⽅法:
class CandidatesController < ApplicationController
layout "backend"
# ...[略]...
end

这样整个 Controller 的⾴⾯在处理的时候就都会套⽤ backend 版型了。
2. 只有特定 Action 套某个版型
在特定 Action 里使⽤ render ⽅法:

class CandidatesController < ApplicationController
def index
@candidates = Candidate.all
render layout: "backend"
end
# ...[略]...
end

这样就只有这个 index 的⾴⾯会套⽤ backend 版型,其它没特别交待的还是会
⽤预设版型。
3. 如果都不要?
如果因为某些原因,完全不想套任何版型,在 Controller 可以这样写:

class CandidatesController < ApplicationController
layout false
# ...[略]...
end
在特定 Action 可以这样:
class CandidatesController < ApplicationController
def index
@candidates = Candidate.all
render layout: false
end
# ...[略]...
end

参考资料

[为你自己学Ruby on Rails]https://railsbook.tw/chapters/08-ruby-basic-4.html


<<:  Day-9: Migration 系虾米哇贵?

>>:  Day 9 - [Zenbo开发系列] 06-安装DDE语料到Zenbo

Day 30: Greedy Method

这是什麽 贪婪法,精神在於有限的条件下,每一步都采取对於当下最有利的选择(短视近利),使状态更接近答...

网路的小技巧-1

//兴趣记录一下~希望退休以後可以回味,各位别嫌弃,感谢各位!! /// //VLAN的重要性,实作...

Day08. 後疫情的新常态,运用Blue Prism「超前布署」好运自创-BP从Excel新建一个工作表

这两天台湾疫情又告急,基於同岛一命的概念防疫的习惯确实不宜松懈, 戴了一天的口罩,回到家里通常懒虫上...

Day 29:案例探讨1 - Use Cases (Bayer/Adobe/IEEE)

看了ElasticSearch的成功案例,说实在的,30天的确只有了解ElasticSearch平台...

IOS、Python自学心得30天 Day-8 tensorflow.python.keras.optimizer_v2.adam改版问题

前言: 经过这两天的测试,总算知道问题出在哪里,之前训练模型的准确度低,是因为他根本没训练到,查了很...