0

私はテーブルを持っています。そして、私は移行を行い、そこに設定しましたがadd_column :articles, :hash_code, :string, :unique => true、機能しません。

何か助けてもらえますか?

4

2 に答える 2

0

ガイドによると

Active Recordの方法では、インテリジェンスはデータベースではなくモデルに属していると主張しています。そのため、そのインテリジェンスの一部をデータベースにプッシュバックするトリガーや外部キー制約などの機能は、あまり使用されていません。

validates:foreign_key、:uniqueness => trueなどの検証は、モデルがデータの整合性を強制できる1つの方法です。アソシエーションの:dependentオプションを使用すると、親が破棄されたときにモデルが子オブジェクトを自動的に破棄できます。

したがって、必要なのは、モデル内の属性の一意性を検証することだけです。これで完了です。また、インデックスも追加したい場合は、移行ファイル自体に追加できます。

于 2013-03-09T14:47:39.840 に答える
0

:unique => true は、add_column ステートメントではなく、add_index ステートメントに属します。

add_index 構文を以下に示します。

add_index :table_name, :column_name, :unique => true

于 2013-03-09T14:49:56.487 に答える