rails n:m как иметь ассоциации rails, когда имена таблиц БД различны
У меня есть проект, который не следует соглашениям о названии рельсов, потому что это невозможно для особого случая.
Сценарий: у меня есть модель с именем Foo и таблица базы данных для этой модели с именем example_foos. У меня есть модель с именем Bar и таблица базы данных для этой модели с именем example_bars.
Я хочу создать связь между этими двумя моделями с моделью FooBar. Имя таблицы базы данных для этой модели - ExampleFooExampleBars.
Теперь мой вопрос... как я могу указать привязку has_many в моделях? Если я делаю это как обычно, я получаю ошибки, потому что имена моделей и таблиц разные.
2 ответа
Ассоциации ссылаются на имена классов, поэтому:
class Foo < ActiveRecord::Base
set_table_name 'example_foos'
has_many :bars
end
class Bar < ActiveRecord::Base
set_table_name 'example_bars'
belongs_to :foo
end
Если ваша модель и таблица имеют разные названия, вы можете
class Foo <ActiveRecord::Base
set_table_name "example_foos"
end
остальная часть ассоциации согласно рельсовому соглашению