Skip to content

Commit bc40948

Browse files
committed
Site updated @ Wed Nov 4 10:23:40 CST 2015
1 parent 6879448 commit bc40948

8 files changed

+311
-787
lines changed

Diff for: action_controller_overview.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -1039,7 +1039,7 @@ <h4 id="任意数据的实时流">12.3 任意数据的实时流</h4><p>在 Rails
10391039
</div>
10401040
<p>在这段代码中,只有上一句唱完才会发送下一句歌词。</p><h5 id="使用数据流时的注意事项">12.3.3 使用数据流时的注意事项</h5><p>以数据流的方式发送任意数据是个强大的功能,如前面几个例子所示,你可以选择何时发送什么数据。不过,在使用时,要注意以下事项:</p>
10411041
<ul>
1042-
<li>每次以数据流形式发送响应时都会新建一个线程,然后把原线程中的本地变量复制过来。线程中又太多的本地变量会降低性能。而且,线程太多也会影响性能。</li>
1042+
<li>每次以数据流形式发送响应时都会新建一个线程,然后把原线程中的本地变量复制过来。线程中包含太多的本地变量会降低性能。而且,线程太多也会影响性能。</li>
10431043
<li>忘记关闭响应流会导致套接字一直处于打开状态。使用响应流时一定要记得调用 <code>close</code> 方法。</li>
10441044
<li>WEBrick 会缓冲所有响应,因此引入 <code>ActionController::Live</code> 也不会有任何效果。你应该使用不自动缓冲响应的服务器。</li>
10451045
</ul>

Diff for: active_record_validations.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ <h3 id="数据验证简介">1 数据验证简介</h3><p>下面演示一个非常
275275

276276
</pre>
277277
</div>
278-
<p>如上所示,如果 <code>Person</code> 没有 <code>name</code> 属性,验证就会将其视为不合法对象。创建的第二个 <code>Person</code> 对象不会存入数据库。</p><p>在深入探讨之前,我们先来介绍数据验证在整个程序中的作用。</p><h4 id="为什么要做数据验证?">1.1 为什么要做数据验证?</h4><p>数据验证能确保只有合法的数据才会存入数据库。例如,程序可能需要用户提供一个合法的 Email 地址和邮寄地址。在模型中做验证是最有保障的,只有通过验证的数据才能存入数据库。数据验证和使用的数据库种类无关,终端用户也无法跳过,而且容易测试和维护。在 Rails 中做数据验证很简单,Rails 内置了很多帮助方法,能满足常规的需求,而且还可以编写自定义的验证方法。</p><p>数据存入数据库之前的验证方法还有其他几种,包括数据库内建的约束,客户端验证和控制器层验证。下面列出了这几种验证方法的优缺点:</p>
278+
<p>如上所示,如果 <code>Person</code><code>name</code> 属性值为空,验证就会将其视为不合法对象。创建的第二个 <code>Person</code> 对象不会存入数据库。</p><p>在深入探讨之前,我们先来介绍数据验证在整个程序中的作用。</p><h4 id="为什么要做数据验证?">1.1 为什么要做数据验证?</h4><p>数据验证能确保只有合法的数据才会存入数据库。例如,程序可能需要用户提供一个合法的 Email 地址和邮寄地址。在模型中做验证是最有保障的,只有通过验证的数据才能存入数据库。数据验证和使用的数据库种类无关,终端用户也无法跳过,而且容易测试和维护。在 Rails 中做数据验证很简单,Rails 内置了很多帮助方法,能满足常规的需求,而且还可以编写自定义的验证方法。</p><p>数据存入数据库之前的验证方法还有其他几种,包括数据库内建的约束,客户端验证和控制器层验证。下面列出了这几种验证方法的优缺点:</p>
279279
<ul>
280280
<li>数据库约束和“存储过程”无法兼容多种数据库,而且测试和维护较为困难。不过,如果其他程序也要使用这个数据库,最好在数据库层做些约束。数据库层的某些验证(例如在使用量很高的数据表中做唯一性验证)通过其他方式实现起来有点困难。</li>
281281
<li>客户端验证很有用,但单独使用时可靠性不高。如果使用 JavaScript 实现,用户在浏览器中禁用 JavaScript 后很容易跳过验证。客户端验证和其他验证方式结合使用,可以为用户提供实时反馈。</li>

Diff for: engines.html

+132-530
Large diffs are not rendered by default.

Diff for: initialization.html

+58-131
Large diffs are not rendered by default.

Diff for: rails_application_templates.html

+29-34
Large diffs are not rendered by default.

Diff for: rails_on_rack.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ <h3 id="action-dispatcher-中间件">3 Action Dispatcher 中间件</h3><p>Action
333333

334334
</pre>
335335
</div>
336-
<p>这里列出的各中间件在“<a href="#internal-middleware-stack">内部中间件</a>”一节有详细介绍。</p><h4 id="设置中间件">3.2 设置中间件</h4><p>Rails 在 <code>application.rb</code> <code>environments/&lt;environment&gt;.rb</code> 文件中提供了一个简单的设置项 <code>config.middleware</code>可以添加新中间件,删除再用的中间件,或者修改中间件的加载顺序</p><h5 id="添加新中间件">3.2.1 添加新中间件</h5><p>使用下面列出的任何一种方法都可以添加新中间件:</p>
336+
<p>这里列出的各中间件在“<a href="#internal-middleware-stack">内部中间件</a>”一节有详细介绍。</p><h4 id="设置中间件">3.2 设置中间件</h4><p>Rails 在 <code>application.rb</code> <code>environments/&lt;environment&gt;.rb</code> 文件中提供了一个简单的设置项 <code>config.middleware</code>可以在middleware堆栈中添加,修改和删除中间件 </p><h5 id="添加新中间件">3.2.1 添加新中间件</h5><p>使用下面列出的任何一种方法都可以添加新中间件:</p>
337337
<ul>
338338
<li>
339339
<code>config.middleware.use(new_middleware, args)</code>:把新中间件添加到列表末尾;</li>
@@ -355,7 +355,7 @@ <h3 id="action-dispatcher-中间件">3 Action Dispatcher 中间件</h3><p>Action
355355

356356
</pre>
357357
</div>
358-
<h5 id="替换中间件">3.2.2 替换中间件</h5><p>使用 <code>config.middleware.swap</code> 可以替换现有的中间件</p><div class="code_container">
358+
<h5 id="替换中间件">3.2.2 替换中间件</h5><p>使用 <code>config.middleware.swap</code> 可以替换middleware堆栈中的中间件</p><div class="code_container">
359359
<pre class="brush: ruby; gutter: false; toolbar: false">
360360
# config/application.rb
361361

0 commit comments

Comments
 (0)