опция миграции: "зависимый" - PullRequest
2 голосов
/ 31 января 2011

в файле миграции, для чего используется опция ":dependent", какие могут быть возможные значения для этой опции?И что означает каждое значение?Кто-нибудь может мне объяснить?

например, здесь используется :dependent => :delete

def self.up
    create_table :car, :id => false do |t|
      t.integer :brand_id, :null =>false
      t.timestamp :buy_at, :null => false

    end

    add_index :car, :brand_id
    add_foreign_key :car, :brands, :dependent => :delete
  end

 def self.down
     drop_table :balance_updated
 end

Ответы [ 2 ]

0 голосов
/ 28 декабря 2017

FOREIGN KEY - это ключ, используемый для связывания двух таблиц.

FOREIGN KEY - это поле (или набор полей) в одной таблице, которое ссылается на PRIMARY KEY в другой таблице. Ссылка

Таким образом, столбец автомобиля brand_id зависит от (первичного ключа) таблицы бренда, которая обычно будет называться brand_id (имя по умолчанию в sqlite3, если вы используете значение по умолчанию)rails database).

Таким образом, это гарантирует, что если марка, то есть Mercedes, будет удалена из таблицы «Марка», то также будут удалены ВСЕ автомобили, обозначенные как «Мерседес» в таблице «Автомобиль».

0 голосов
/ 31 января 2011

В "обычных" Rails опция :dependent используется в модели примерно так:

has_many :models, :dependent => :destroy

Однако, я думаю, что вы используете плагин foreign_key_migrations ? Если это так, взгляните на эту строку исходного кода , чтобы узнать, что делает опция :dependent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...