2012-01-10 1 views
0

У меня есть внешний ключ имя Cutom (не ассоциации + _id) как так:Внешний ключ такой же, как и связанная таблица?

belongs_to :investment_advisor, :foreign_key => "investment_advisor" 

Это создает проблему, потому что рельсы запутается и не знает, если им со ссылкой на ассоциацию или внешнего ключа. Есть ли способ переименовать внешний ключ (не касаясь базы данных) что-то еще? Как переменная или что-то еще?

ответ

2

Вы можете переименовать ассоциацию, для одного:

belongs_to :investment_advisor_obj, 
      :foreign_key => "investment_advisor", 
      :class_name => "InvestmentAdvisor" 

(или вы могли бы выбрать менее глупое название)

+0

Но оленью кожу ': investment_advisor' должны быть именем таблицы? Или это просто имя таблицы, а ': class_name' - это имя таблицы –

+0

@JonahKatz: нет, это не нужно. Но Rails должен быть в состоянии найти другой класс в этой ассоциации. Следовательно, опция ': class_name'. –

+0

дайте ему пойти @ JonahKatz. На самом деле имя ассоциации - это имя. Он узнает имя таблицы, просто спросив «InvestmentAdvisor.table_name» –