2014-01-20 15 views
9

を指定するために生成する `使用カラム内のNULL、それは、端末レール - レールはmodel`は</strong>は、許可または禁止するフィールドを変更することは可能であるべきと言うタイプ修飾子サポートレールのドキュメント</p> <p><a href="http://guides.rubyonrails.org/migrations.html">http://guides.rubyonrails.org/migrations.html</a></p> <p><strong>2.3によると、非NULL可能フィールド型

これは、上のこのを行うことが可能だということは、私は移行ファイルに表示するものです

端末上
class CreateTestModels < ActiveRecord::Migration 
    def change 
    create_table :test_models do |t| 
     t.string:non_nullable, :null => false 

     t.timestamps 
    end 
    end 
end 

、私は

rails generate model TestModel non_nullable:string{null} 
rails generate model TestModel 'non_nullable:string{null: false}' 

を試してみた私はそれを

注意を表現する他の方法を考えることはできません:私はすでにあなたが移行ファイルに移動し、手動ですることができます知っていますそれを追加します。それは私が探しているものではありません。

+4

この投稿(http://railsguides.net/2013/06/29/advanced-rails-model-generators/)には、発電機オプションに関する素晴らしい情報がたくさんあります。彼は悲しいことに、ヌル値の設定について言及していません。また、ソースコード(https://github.com/rails/rails/blob/master/railties/lib/rails/generators/generated_attribute.rb)を掘り下げてみると、* extra *オプションは 'index '、' uniq'、 '' polymorphic'などがあります。 –

+0

ええ、@mrrogersに同意するnullは、新しいモデルの属性の生成を処理するコードのオプションではないようです。 – Shadwell

+0

Aw。まあ、それは残念であり、誤解を招くものでした。助けてくれてありがとう! – Alan

答えて

0

私はあなたのソリューションを得ることができる最も近いが、このようなものです:あなたはそれを行うことができ、私は,後に何が来るのかうまくできなかった

rails generate model TestModel non_nullable,null:string 

それはあなたに開始

-2

を与える必要がありますthis-

class TestModel < ActiveRecord::Base 
    validates_presence_of :non_nullable 
end 
1

docs言及のようなあなたのモデルクラスでその

よく使用されるタイプ修飾子は、コマンドラインで直接渡すことができます。それらは中括弧で囲まれ、フィールドタイプに従います

しかし、「一般的に使用される」修飾語句がどのように動作するかについての詳細は記載されていません。用(dollar_fragment:decimal{3,2}

  • 多型小数の文字列/テキスト/バイナリ/整数(name:string{255}
  • 精度、スケールのため

    • 長さ:

      としてのみthree supported optionsあるMRロジャース が指摘しました参考文献/ belongs_to(agent:references{polymorphic}

    user2903934 この作業はコマンドラインからハックとして行うことができます。

    注:これはハックです。私はこれを行うことをお勧めしませんしかしあなたの質問に答える。

    rails generate model TestModel 'non_nullable, null => false:string' 
    

    それは最初のコロンで分割しますように見えますので、我々はそこにオプションをこっそりhashrocket構文を使用することができます。これは、次のような結果をもたらします。

    class CreateTestModels < ActiveRecord::Migration 
        def change 
        create_table :test_models do |t| 
         t.string :non_nullable, null => false 
    
         t.timestamps 
        end 
        end 
    end 
    

    明らかに正式にはサポートされていません。

  • +0

    列修飾子は、[列修飾子](http://edgeguides.rubyonrails.org/active_record_migrations.html#column-modifiers)に記載されています。 – sushilthe

    関連する問題

     関連する問題