[英]Rails - generate Scaffold with Table Options
I've started learning Ruby last week, and I've started learning Rails today, so bear with me. 我上周开始学习Ruby,今天我开始学习Rails了,所以请耐心等待。 I see that Rails come with generators that allow you to generate models/controllers or even model+controller+views bundle as 'scaffold'. 我看到Rails带有生成器,允许您生成模型/控制器甚至模型+控制器+视图包作为“脚手架”。 This is what I am interested in. 这就是我感兴趣的。
However, I have a question. 但是,我有一个问题。 How do I set database options of the column? 如何设置列的数据库选项?
eg. 例如。 To generate a users table I would do: 要生成用户表,我会这样做:
rails g scaffold users uuid:binary name:string email:string password:binary registered_on:date number:integer default:string
Now what if I'm integrity freak and am not happy by having validation just in model/controller, but want to do database level limitations as well. 现在如果我是完整性怪物并且不仅仅在模型/控制器中进行验证,而且想要进行数据库级别限制,那该怎么办呢? What if I want email
to be 50 characters max, and number
to Auto-Increment and neither of all fields is allowed to be NULL and default
field must have a default of 'foo'. 如果我希望email
最多为50个字符,并且number
为自动递增,并且所有字段都不允许为NULL并且default
字段必须具有默认值'foo',该怎么办? Is there any way to pass these requirements to generator command? 有没有办法将这些要求传递给发电机命令?
I know its possible to set these options in .rb file that is used in rake db:migrate, however it would be easier to just pass values in with 1 command. 我知道可以在rake db:migrate中使用的.rb文件中设置这些选项,但是使用1命令传递值会更容易。
至少有一些东西是可用的,比如字符串长度,但不确定其他东西。
rails g scaffold users email:string{50}
Use type modifiers between curly braces, example: 在花括号之间使用类型修饰符 ,例如:
rails generate migration AddDetailsToProducts price:decimal{5,2}
More info: migrations 更多信息: 迁移
db/migrate
. 此文件位于db/migrate
。 After you are done customizing the fields, don't forget to do a rake db:migrate
. 完成自定义字段后,不要忘记执行rake db:migrate
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.