Я подключаюсь к существующей базе данных, чтобы сделать несколько простых лесов для администрирования. Соглашение об именах, которое они использовали, - table_id. Поэтому мне нужно изменить первичный ключ по умолчанию с «id», например, на «customer_id». Я также надеюсь, что смогу использовать рельсовые леса с этим изменением, не переделывая все.Rails 4 - Переименовать первичный ключ
0
A
ответ
0
Я после этого руководства: http://ruby-journal.com/how-to-override-default-primary-key-id-in-rails/
И это, кажется, работает хорошо.
0
На самом деле вы не хотите этого делать.
Id являются для базы данных только в Rails вы можете использовать внешний ключ, и сказать что-то вроде
Costumer has_many: XXX и XXX belongs_to: Костюмер
что вы дать вам 1- n в базе данных, что означает, что XXX должен существовать потребитель.
Ответ на вопрос, почему вы не хотите изменять это, потому что ваша база данных не будет знать, как поступить после этого изменения (если возможно вообще), и как вы будете искать элемент на своем новом эшафоте без и ID? поскольку идентификатор является Costumer ID
если вы не знаете, как дать внешние ключи, click here
Смежные вопросы
- 1. Rails 4 альтернативный первичный ключ с MySQL
- 2. MVC 4 отправил первичный ключ
- 3. Как переименовать ключ hstore в Rails + Postgres
- 4. Повторно создать первичный ключ в Rails
- 5. Составной первичный ключ с 4-мя атрибутами
- 6. Entity Framework 4: Как найти первичный ключ?
- 7. varchar() первичный ключ или int первичный ключ?
- 8. Составной первичный ключ против автоинкрементируемого Первичный ключ
- 9. рельсам 4, как использовать внешний ключ и первичный ключ
- 10. Rails - переопределить первичный ключ on has_one
- 11. База данных тестов Rails отсутствует первичный ключ
- 12. Rails Migration Создать таблицу Первичный ключ
- 13. LINK_TO Rails, используя внешние и первичный ключ
- 14. Как добавить первичный ключ в миграцию Rails?
- 15. Как мы можем переименовать первичный ключ таблицы в свободно-мигрирующем?
- 16. Rails 4 зашифровать внешний ключ
- 17. Первичный ключ состоит
- 18. Rails 4: переименовать модель, соответствующую таблице
- 19. Необязательный первичный ключ mySQL
- 20. Композитный первичный ключ или первичный суррогатный ключ со следующим сценарием?
- 21. Композитный первичный ключ?
- 22. Алфавитный первичный ключ
- 23. первичный ключ и внешний ключ
- 24. Первичный ключ как текст
- 25. Обновление MySQL первичный ключ
- 26. первичный ключ в таблице
- 27. составной первичный ключ и столбец автоинкремент, но НЕ первичный ключ
- 28. Cassandra первичный ключ зачатие
- 29. Первичный ключ не null
- 30. Как удалить первичный ключ?
Обновление записей не удастся, если нет столбца «id» для ссылки, верно? База данных, к которой я подключаюсь, имеет client_id как первичный ключ. Если я запускаю обновление или уничтожение рельсов, для id = 45 он не найдет запись. – Atari2600
вы можете добавить collum в базу данных в качестве решения [проверьте его здесь] (http://guides.rubyonrails.org/active_record_migrations.html#highlighter_783751). чтобы ответить на этот вопрос, я не знаю, как работает база данных rails, но я бы не догадался, и я бы не советовал вам возиться с этим. , тогда у вас будет проблема поиска по ID, это было бы слишком грязно (если это возможно). вы можете вообразить? * something * find_by (id = costumer_id), если вы покупаете что-то другое, а не ваши заказчики? используя тот же идентификатор для 2 таблиц, которые представляют разные вещи .. hmm .. kinda messy –
пример .. позволяет сказать, что для каждого клиента у вас есть продукты .. как бы вы получили доступ к продуктам id? products.costumer_id? почему бы не использовать этот costumer_id как ключ для ключей ?. как бы вы сохранили эти продукты? и порядок? или искать специфику? costumer_id будет не в идеальном порядке на вашей таблице продуктов. Это означает, что на вашем продукте один будет (например) costumer_id 3, тогда на вас второй продукт будет costumer_id 1 .. поэтому ваша таблица будет не в закажите его, чтобы найти по id вы можете себе представить, если у вас есть 1000 продуктов? и идентификатор не от 1 до 1000? –