6

私は先週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つのコマンドで値を渡す方が簡単です。

4

2 に答える 2

13

文字列の長さなど、少なくともいくつかのものは利用可能ですが、他のものについてはわかりません。

rails g scaffold users email:string{50}
于 2013-02-14T23:58:40.533 に答える
2
  1. 中括弧の間に型修飾子を使用します。例:

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

    詳細:移行

  2. 足場を使用して、一般的な移行ファイルを取得します。そして、あなたが言ったように、そこでカスタマイズを行います。このファイルは にありますdb/migrate

フィールドのカスタマイズが完了したら、忘れずにrake db:migrate.

于 2013-12-05T16:17:07.197 に答える