Skip to content

Commit 25df24f

Browse files
authoredJul 8, 2017
Merge pull request #92 from AndorChen/5.1.2
译稿升级到 Rails 5.1.2
2 parents 5f366fa + ff9ed70 commit 25df24f

10 files changed

+30
-263
lines changed
 

‎source/zh-CN/action_mailer_basics.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,7 @@ config.action_mailer.smtp_settings = {
689689
enable_starttls_auto: true }
690690
```
691691

692-
NOTE:2014715 日起,Google [增强了安全措施](https://support.google.com/accounts/answer/6010255),会阻止它认为不安全的应用访问。你可以在[这里](https://www.google.com/settings/security/lesssecureapps)修改 Gmail 的设置,允许访问,或者使用其他 ESP 发送电子邮件:把上面的 `'smtp.gmail.com'` 换成提供商的地址。
692+
NOTE:2014715 日起,Google [增强了安全措施](https://support.google.com/accounts/answer/6010255),会阻止它认为不安全的应用访问。你可以在[这里](https://www.google.com/settings/security/lesssecureapps)修改 Gmail 的设置,允许访问。如果你的 Gmail 账户启用了双因素身份验证,则要设定一个[应用密码](https://myaccount.google.com/apppasswords),用它代替常规的密码。或者,你也可以使用其他 ESP 发送电子邮件:把上面的 `'smtp.gmail.com'` 换成提供商的地址。
693693

694694
<a class="anchor" id="mailer-testing"></a>
695695

‎source/zh-CN/active_record_callbacks.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,11 @@ NOTE: `find_by_*` 和 `find_by_*!` 方法是为每个属性自动生成的动态
276276

277277
回调在模型中注册后,将被加入队列等待执行。这个队列包含了所有模型的验证、已注册的回调和将要执行的数据库操作。
278278

279-
整个回调链包装在一个事务中。如果任何一个 `before` 回调方法返回 `false` 或引发异常,整个回调链就会停止执行,同时发出 `ROLLBACK` 消息来回滚事务;而 `after` 回调方法只能通过引发异常来达到相同的效果。
279+
整个回调链包装在一个事务中。只要有回调抛出异常,回调链随即停止,并且发出 `ROLLBACK` 消息。如果想故意停止回调链,可以这么做:
280+
281+
```ruby
282+
throw :abort
283+
```
280284

281285
WARNING: 当回调链停止后,Rails 会重新抛出除了 `ActiveRecord::Rollback``ActiveRecord::RecordInvalid` 之外的其他异常。这可能导致那些预期 `save``update_attributes` 等方法(通常返回 `true``false` )不会引发异常的代码出错。
282286

‎source/zh-CN/api_app.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -139,16 +139,17 @@ API 应用默认包含下述中间件:
139139
* `ActiveSupport::Cache::Strategy::LocalCache::Middleware`
140140
* `Rack::Runtime`
141141
* `ActionDispatch::RequestId`
142+
* `ActionDispatch::RemoteIp`
142143
* `Rails::Rack::Logger`
143144
* `ActionDispatch::ShowExceptions`
144145
* `ActionDispatch::DebugExceptions`
145-
* `ActionDispatch::RemoteIp`
146146
* `ActionDispatch::Reloader`
147147
* `ActionDispatch::Callbacks`
148148
* `ActiveRecord::Migration::CheckPending`
149149
* `Rack::Head`
150150
* `Rack::ConditionalGet`
151151
* `Rack::ETag`
152+
* `MyApi::Application::Routes`
152153

153154
各个中间件的作用参见 [内部中间件栈](rails_on_rack.html#internal-middleware-stack)
154155

@@ -301,6 +302,7 @@ API 应用(使用 `ActionController::API`)默认有下述控制器模块:
301302
* `ActionController::Rescue`:提供 `rescue_from`
302303
* `ActionController::Instrumentation`:提供 Action Controller 定义的监测钩子(详情参见 [Action Controller](active_support_instrumentation.html#action-controller))。
303304
* `ActionController::ParamsWrapper`:把参数散列放到一个嵌套散列中,这样在发送 POST 请求时无需指定根元素。
305+
* `ActionController::Head`:返回只有首部没有内容的响应。
304306

305307
其他插件可能会添加额外的模块。`ActionController::API` 引入的模块可以在 Rails 控制台中列出:
306308

‎source/zh-CN/contributing_to_ruby_on_rails.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ NOTE: 为了减轻 CI 服务器的压力,关于文档的提交消息中应该
139139

140140
我们欢迎人们自发把 Rails 指南翻译成其他语言。翻译时请遵照下述步骤:
141141

142-
* 派生项目 https://github.com/rails/rails
142+
* 派生 https://github.com/rails/rails 项目
143143
* 为你的语言添加一个文件夹,例如针对意大利语的 guides/source/it-IT
144144
* 把 guides/source 中的内容复制到你创建的文件夹中,然后翻译
145145
* 不要翻译 HTML 文件,因为那是自动生成的

‎source/zh-CN/getting_started.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1133,11 +1133,11 @@ end
11331133
</table>
11341134
```
11351135

1136-
在上面的代码中,`link_to` 辅助方法生成“Destroy”链接的用法有点不同,其中第二个参数是具名路由(named route),还有一些选项作为其他参数。`method: :delete``data: { confirm: 'Are you sure?' }` 选项用于设置链接的 HTML5 属性,这样点击链接后 Rails 会先向用户显示一个确认对话框,然后用 `delete` 方法发起请求。这些操作是通过 JavaScript 脚本 `jquery_ujs` 实现的,这个脚本在生成应用骨架时已经被自动包含在了应用的布局中(`app/views/layouts/application.html.erb`)。如果没有这个脚本,确认对话框就无法显示。
1136+
在上面的代码中,`link_to` 辅助方法生成“Destroy”链接的用法有点不同,其中第二个参数是具名路由(named route),还有一些选项作为其他参数。`method: :delete``data: { confirm: 'Are you sure?' }` 选项用于设置链接的 HTML5 属性,这样点击链接后 Rails 会先向用户显示一个确认对话框,然后用 `delete` 方法发起请求。这些操作是通过 JavaScript 脚本 `rails-ujs` 实现的,这个脚本在生成应用骨架时已经被自动包含在了应用的布局中(`app/views/layouts/application.html.erb`)。如果没有这个脚本,确认对话框就无法显示。
11371137

11381138
![确认对话框](images/getting_started/confirm_dialog.png)
11391139

1140-
TIP: 关于 jQuery 非侵入式适配器(jQuery UJS)的更多介绍,请参阅[在 Rails 中使用 JavaScript](working_with_javascript_in_rails.html)
1140+
TIP: 关于非侵入式 JavaScript 的更多介绍,请参阅[在 Rails 中使用 JavaScript](working_with_javascript_in_rails.html)
11411141

11421142
恭喜你!现在你已经可以创建、显示、列出、更新和删除文章了!
11431143

‎source/zh-CN/nested_model_forms.md

-228
This file was deleted.

‎source/zh-CN/profiling.md

-13
This file was deleted.

‎source/zh-CN/rails_on_rack.md

+9-5
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ use ActiveSupport::Cache::Strategy::LocalCache::Middleware
117117
use Rack::Runtime
118118
use Rack::MethodOverride
119119
use ActionDispatch::RequestId
120+
use ActionDispatch::RemoteIp
121+
use Sprockets::Rails::QuietAssets
120122
use Rails::Rack::Logger
121123
use ActionDispatch::ShowExceptions
122124
use WebConsole::Middleware
@@ -131,7 +133,7 @@ use ActionDispatch::Flash
131133
use Rack::Head
132134
use Rack::ConditionalGet
133135
use Rack::ETag
134-
run Rails.application.routes
136+
run MyApp.application.routes
135137
```
136138

137139
这里列出的默认中间件(以及其他一些)在 [内部中间件栈](#internal-middleware-stack)概述。
@@ -252,6 +254,12 @@ Action Controller 的大部分功能都实现成中间件。下面概述它们
252254

253255
在响应中设定唯一的 `X-Request-Id` 首部,并启用 `ActionDispatch::Request#request_id` 方法。
254256

257+
**`ActionDispatch::RemoteIp`**
258+
259+
检查 IP 欺骗攻击。
260+
261+
`Sprockets::Rails::QuietAssets`:在日志中输出对静态资源的请求。
262+
255263
**`Rails::Rack::Logger`**
256264

257265
通知日志,请求开始了。请求完毕后,清空所有相关日志。
@@ -264,10 +272,6 @@ Action Controller 的大部分功能都实现成中间件。下面概述它们
264272

265273
如果是本地请求,负责在日志中记录异常,并显示调试页面。
266274

267-
**`ActionDispatch::RemoteIp`**
268-
269-
检查 IP 欺骗攻击。
270-
271275
**`ActionDispatch::Reloader`**
272276

273277
提供准备和清理回调,目的是在开发环境中协助重新加载代码。

‎source/zh-CN/security.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -876,7 +876,7 @@ TIP: 为了了解当前针对 Web 应用的攻击方式,最好看几个真实
876876

877877
TIP: CSS 注入实际上是 JavaScript 注入,因为有的浏览器(如 IE、某些版本的 Safari 和其他浏览器)允许在 CSS 中使用 JavaScript。因此,在允许 Web 应用使用自定义 CSS 时,请三思而后行。
878878

879-
著名的 [MySpace Samy 蠕虫](http://namb.la/popular/tech.html)是解释 CSS 注入攻击原理的最好例子。这个蠕虫只需访问用户的个人信息页面就能向 Samy(攻击者)发送好友请求。在短短几个小时内,Samy 就收到了超过一百万个好友请求,巨大的流量致使 MySpace 宕机。下面我们从技术角度来分析这个蠕虫。
879+
著名的 [MySpace Samy 蠕虫](https://samy.pl/popular/tech.html)是解释 CSS 注入攻击原理的最好例子。这个蠕虫只需访问用户的个人信息页面就能向 Samy(攻击者)发送好友请求。在短短几个小时内,Samy 就收到了超过一百万个好友请求,巨大的流量致使 MySpace 宕机。下面我们从技术角度来分析这个蠕虫。
880880

881881
MySpace 禁用了很多标签,但允许使用 CSS。因此,蠕虫的作者通过下面这种方式把 JavaScript 植入 CSS 中:
882882

‎source/zh-CN/testing.md

+8-10
Original file line numberDiff line numberDiff line change
@@ -597,28 +597,26 @@ create test/fixtures/articles.yml
597597
598598
## 系统测试
599599
600-
系统测试是完整的浏览器测试,可用于测试应用的 JavaScript 和用户体验。系统测试建立在 Capybara 之上。
601-
602-
系统测试可以在真实的浏览器中运行,也可以在无界面驱动中运行,用于测试用户与应用的交互。
600+
系统测试用于测试用户与应用的交互,可以在真正的浏览器中运行,也可以在无界面浏览器中运行。系统测试建立在 Capybara 之上。
603601
604602
系统测试存放在应用的 `test/system` 目录中。Rails 为创建系统测试骨架提供了一个生成器:
605603
606604
```sh
607-
$ bin/rails generate system_test users_create
605+
$ bin/rails generate system_test users
608606
invoke test_unit
609-
create test/system/users_creates_test.rb
607+
create test/system/users_test.rb
610608
```
611609
612610
下面是一个新生成的系统测试:
613611
614612
```ruby
615613
require "application_system_test_case"
616614
617-
class UsersCreatesTest < ApplicationSystemTestCase
615+
class UsersTest < ApplicationSystemTestCase
618616
# test "visiting the index" do
619-
# visit users_creates_url
617+
# visit users_url
620618
#
621-
# assert_selector "h1", text: "UsersCreate"
619+
# assert_selector "h1", text: "Users"
622620
# end
623621
end
624622
```
@@ -644,7 +642,7 @@ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
644642
end
645643
```
646644
647-
驱动名称是 `driven_by` 必须的参数。`driven_by` 接受的可选参数有:`:using`,指定使用的浏览器(仅供有界面的驱动使用,如 Selenium);`:screen_size`,修改截图的尺寸。
645+
驱动名称是 `driven_by` 必须的参数。`driven_by` 接受的可选参数有:`:using`,指定使用的浏览器(仅供 Selenium 使用);`:screen_size`,修改截图的尺寸`:options`,设定驱动支持的选项
648646
649647
```ruby
650648
require "test_helper"
@@ -654,7 +652,7 @@ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
654652
end
655653
```
656654
657-
如果所需的 Capybara 配置 Rails 提供的多,可以把所有配置都放在 `application_system_test_case.rb` 文件中。
655+
如果所需的 Capybara 配置比 Rails 提供的多,可以把额外配置放在 `application_system_test_case.rb` 文件中。
658656
659657
其他设置参见 [Capybara 的文档](https://github.com/teamcapybara/capybara#setup)。
660658

0 commit comments

Comments
 (0)
Please sign in to comment.