У меня следующие две модели:
class Store < ActiveRecord::Base
belongs_to :person
end
class Person < ActiveRecord::Base
has_one :store
end
Вот проблема: я пытаюсь создать миграцию для создания внешнего ключа в таблице people. Однако столбец, ссылающийся на внешний ключ Store, не называется store_id, как было бы принято называть rails, но вместо этого называется foo_bar_store_id.
Если бы я шел по соглашению с рельсами, я бы сделал миграцию следующим образом:
class AddReferencesToPeople < ActiveRecord::Migration
def change
add_reference :people, :store, index: true
end
end
Однако это не сработает, потому что имя столбца не store_id, а foo_bar_store_id. Итак, как я могу указать, что имя внешнего ключа просто отличается, но все еще поддерживает индекс: true, чтобы поддерживать высокую производительность?