17

モデルを生成する過程でgit-bashを使用して、レール内のvarcharのサイズを定義します。たとえば、名前varchar(20)、age varchar(6)などです。

スタックを検索しましたが、答えが見つかりませんでした。

4

1 に答える 1

34

メソッド用に文書化されている列を作成する場合、いくつかのオプションがありますcolumnadd_columnそれらは、その後の変更を行うときにも適用されます。

より制限された列を作成する最も簡潔な方法は次のとおりです。

t.string :name, :limit => 20
t.string :age, :limit => 6

注意として、データベースにこのような制限を課すことは非常にまれであり、より良い解決策は を使用してモデルを制限することvalidatesです。例えば:

validates :name,
  :presence => true,
  :length => { :maximum => 20 }

MySQL は、長すぎる値を知らずに切り捨てる傾向があるため、長さの制限がないと、特にそのような短い長さの場合、最終的にデータが失われることになります。

データベースVARCHARの列は可変長であるため、 a と a の 10 文字の値にはストレージの利点はありませVARCHAR(255)VARCHAR(20)

于 2012-12-21T06:18:49.000 に答える