标签:ams 格式 处理 cto 存储 gem 完整 inspect setting
在上一章讲述了如何进行基础的操作,比如 处理 GET 请求的 get route, 再比如下载 gem 等等方面的知识.
在这一章节,作者告诉我们如何储存、处理数据.
整个过程分三步走:
首先,我们需要确保 POST 请求是完整的,因此在 HTML 的 <form>
tag 里,需要两个 attribute:
<form method="post" action="/movies/create">
处理 GET 请求的 Sinatra 的 route 名字叫 get, POST 请求的叫 post.
params 是伴随 post 方法的一个参数,这个参数是一个 hash, 它包含了 form data from the request.
post(‘/movies/create‘) do
"Received: #{params.inspect}"
end
首先,当 user 提交了一个 form 之后, 我们需要 create 一个对应的 Movie 的 object.
post(‘/movies/create‘) d0
@movie = Movie.new
@movie.title = params[‘title‘]
@movie.director = params[‘director‘]
@movie.year = params[‘year‘]
end
YAML 不是标记语言,而是一个 standard for representing objects and other data.
Ruby 中的 ‘yaml‘ 模块可以将 Ruby 中的 objects 转换为 YAML 格式的 file 储存起来.
require ‘yaml‘
‘yaml‘ 仅仅可以进行转换,而无法将其内容储存为一个 file在 YAML library 中包含了 YAML::Store 这个 class, 它可以将 object 储存为 disk 中的 file.
require ‘yaml/store‘
store = YAML:Store.new(‘my_file.yml‘)
其格式与 hash 很相似,都需要一个 key 和一个响应的 value.
transaction是储存数据时需要执行的方法,用于 prevent other programs from writing to the file until the block exits.
store.transaction do
store["my key"] = "my value"
store["key two"] = "value two"
end
HeadFirst Ruby 第十五章总结 Saving and loading data(一)
标签:ams 格式 处理 cto 存储 gem 完整 inspect setting
原文地址:https://www.cnblogs.com/FBsharl/p/10644294.html