нужен внешний ключ в миграции, чтобы has_many принадлежал для работы? - PullRequest
0 голосов
/ 19 ноября 2010

мне нужно создать внешний ключ при переносе, чтобы has_many принадлежал_ для работы? Могу ли я не создавать какой-либо внешний ключ, такой как: options => "CONSTRAINT fk_box_storage REFERENCES box (id)", и все еще использовать has_many и own_to в модели?

Ответы [ 2 ]

3 голосов
/ 19 ноября 2010

Вам не нужно создавать никаких подобных ограничений.Вам просто нужно создать автономную миграцию, чтобы создать таблицу соединений.Допустим, у вас есть 2 модели с habtm, User и Role.

>> script/generate migration roles_users

В вашей миграции

create_table :roles_users, :id => false do |t|
  t.references :user
  t.references :role
end

Вот так

1 голос
/ 19 ноября 2010

Нет необходимости, если вы хотите, чтобы веб-приложение получало доступ к базе данных.Если вы хотите получить доступ к БД из другого приложения или напрямую, я бы порекомендовал вам создать внешние ключи, так как они дадут вам лучшее представление о том, что там происходит, и не позволят вам вставить неверную информацию или удалить по ошибке (если вы установили опцию удаления)

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