Теоретически преимущество заключается в том, что он более читабелен.В вашем случае A.find(id).bs
присоединится к B
с соответствующими b_id
в вашей таблице A
, что может быть не так интуитивно, как использование другого имени, в данном случае special_id
.
С точки зрения производительности не должно быть заметных различий, если есть индексы как для столбцов первичного, так и для внешнего ключа.Метод has_many
в конечном итоге приведет к запросу, поэтому единственная вычислительная стоимость состоит в том, чтобы поменять имя столбца в строке запроса, которую генерирует ActiveRecord
.
Вы можете попробовать сравнить запросы с различными ключами.декларации, но я был бы удивлен, если бы он добавил даже миллисекунду ко времени запроса.