Rails生成包含验证的模型?

时间:2013-12-03 19:09:54

标签: ruby-on-rails ruby-on-rails-4 command-line-arguments generator models

我想知道是否有人知道如何做以下事情:

rails generate model Foo name:string, validates: {:name, uniqueness: true}

也就是说,在声明具有某些属性的模型生成器的同时,使用一些rails魔法来同时添加您的验证。

2 个答案:

答案 0 :(得分:3)

没有。 rails generate model命令直接与数据库功能相关联。例如,您应该能够执行这样的命令rails generate model Foo name:string:uniq。这将强制数据库要求名称的唯一字符串。这不会为你的foo.rb文件添加任何内容。

以下是有关rails模型生成的更多信息: http://travisjeffery.com/b/2012/03/generate-rails-migrations-that-automagically-add-your-change/

答案 1 :(得分:1)

正如其他人所说,目前还没有办法做到这一点。 rails generate model命令的大多数特殊选项都由generated_attribute.rb中的parse_type_and_options方法解析。然后model_generator.rb将使用此信息构建模型和迁移文件。

创建的模型文件的模板是model.rb。在Rails 4中,此模板可以为belongs_topolymorphichas_secure_password添加特殊代码,但不会添加与验证相关的代码。

创建的迁移文件的模板是create_table_migration.rb。在Rails 4中,这可以为limitdecimalprecision添加特殊选项。