为什么数据库文件是yml而不是rb

时间:2019-06-20 07:08:17

标签: ruby-on-rails ruby

在最近的一次采访中有人问我,为什么我们将数据库做成yml文件而不是rb。最初,我对这个问题感到困惑,我尝试给出一个可以序列化和反序列化yml文件的答案,但是答案并不令人满意。因此,有人可以分享他的看法吗?

2 个答案:

答案 0 :(得分:4)

我注意到了

  1. YAML是JSON的超集。 YAML在视觉上更易于查看和阅读。
  2. 我们可以使用“ anchors”来引用YAML中的其他数据,以便它可以处理关系数据。
  3. YAML在嵌入其他序列化格式(例如JSON)方面更加强大。
  4. 它将减少不必要的对象创建,就像在.rb文件中所做的那样。

因此,存储配置只通过yaml文件备份要存储的键值对。

答案 1 :(得分:1)

简而言之,为了理智起见,应将数据和代码分开。从功能的角度来看,数据在代码中扮演着不同的角色。因此,我们将数据存储在数据库中,或者将它们序列化为JSON和YAML。

YAML的

Config是反序列化。它是人类可读的,无需担心无关的语言问题,如果要从旧的代码库进行迁移,则以文本格式进行配置时会容易得多。由于易读性,YAML在这里超过了JSON。

Rails建立在基于逻辑功能分离层的概念上。像MVC出于同样的原因而设计。如有必要,您将在三个认证层中分开一个认证层。