导轨夹具 - 这些是什么意思?

时间:2013-08-18 23:53:41

标签: ruby-on-rails fixtures

上下文

当我生成灯具文件时,rails generate model Post title:string text:text显示:

one:
  title: MyString
  text: MyText

two:
  title: MyString
  text: MyText

问题

我想知道为什么会有2个,为什么他们被命名为“一个”和“两个”。

Here我看到使用“google”,“rubyonrails”和“parent / child”这样的名字;然而,按照生成帖子模型的教程,它只生成一个和两个......

经过更多研究,我发现我可能也对db / migrate文件感兴趣。我目前的理论是这些文件创建了我的数据结构......所以我不太确定是什么灯具。

原因

我正在尝试使用

创建一个“学生”模型
rails generate scaffold student

但它似乎没有:name作为其键之一。我正在研究灯具来添加数据列。

3 个答案:

答案 0 :(得分:3)

关于您的问题的一些简短说明:

灯具是可以输入单元测试的数据。只要rails为控制器和模型生成相应的测试,就会自动创建它们。它们仅用于测试,在运行应用程序时实际无法访问。

默认情况下,Rails每次都会提供两个名为“一个”和“两个”的灯具。您可以随意更改它们。此外,当您使用生成器传递所需数据库列的键时,将进入灯具中的数据。在第一个例子中你使用了rails g model post title:string ...你创建了一个名为Post的模型并传递了两个键:title和:text。

<强>答案:

至于您的上一个问题,您可以快速解决问题 a)通过在命令行中键入以下内容来删除旧脚手架:

rails d scaffold Student

b)再次创建它,但这次使用你想要的键:

rails g scaffold Student name:string

答案 1 :(得分:0)

我首先要说的是,rails generate命令生成的代码旨在成为部分应用程序的起点,帮助您快速上手。

那就是说 - 固定装置用于单元测试。它们为您提供了一种生成系统中已存在的一组对象的方法,因此您无需在测试开始时手动创建它们。

在这种情况下,onetwo只是占位符。在真实的应用程序中,您可以使用在测试中更有意义的名称替换它们。

如果您希望在应用中添加数据列,则可能不是正确的方法。它们真的意味着在测试中使用,仅此而已。

答案 2 :(得分:0)

试试这个:

关于您的上一个问题,您可以通过以下方式快速解决问题:a)通过在命令行中键入以下内容来删除旧脚手架:

rails d scaffold Student

b) Creating it again but this time with the keys you want:

rails g scaffold Student name:string