Rails - 使用表选项生成脚手架

时间:2013-02-14 23:49:51

标签: ruby-on-rails ruby

我上周开始学习Ruby,今天我开始学习Rails,所以请耐心等待。 我看到Rails带有生成器,允许您生成模型/控制器甚至模型+控制器+视图包作为“脚手架”。这就是我感兴趣的。

但是,我有一个问题。如何设置列的数据库选项?

例如。要生成用户表,我会这样做:

rails g scaffold users uuid:binary name:string email:string password:binary registered_on:date number:integer default:string

现在如果我是完整性怪物并且不仅仅在模型/控制器中进行验证,而且想要进行数据库级别限制,那该怎么办呢? 如果我希望email最多50个字符,number自动递增,并且所有字段都不允许为NULL且default字段必须具有默认值'foo',该怎么办? 。有没有办法将这些要求传递给生成器命令?

我知道可以在rake db:migrate中使用的.rb文件中设置这些选项,但是使用1命令传递值会更容易。

2 个答案:

答案 0 :(得分:11)

至少有一些东西是可用的,比如字符串长度,但不确定其他东西。

rails g scaffold users email:string{50}

答案 1 :(得分:2)

  1. 在花括号之间使用类型修饰符,例如:

    rails generate migration AddDetailsToProducts price:decimal{5,2} 
    

    更多信息:migrations

  2. 使用scaffold并获取通用迁移文件。并且,正如您所提到的,在那里进行自定义。这些文件位于db/migrate
  3. 完成自定义字段后,请不要忘记执行rake db:migrate