2013-04-24 2 views
1

У меня есть модель, которая использует STI:Rails: Создание Wrong ИмяТаблицы С Namespaced STI

class Contributor::Name < Contributor::NameBase 
    ... 
end 

Из этой модели:

class Contributor::NameBase < ActiveRecord::Base 
    ... 
end 

Когда Contributor::Name получает экземпляр, я получаю эту ошибку:

Кажется, что вместо поиска таблицы contributor_name_bases, Activ eRecord смотрит вверх contributor_basis_name_bases. Почему добавляется basis между contributor и name_bases? Как я могу заставить его остановиться?

ответ

1

Хорошо, это не ответ, почему рельсы добавляют «basis», но это сработает для вас.
Используйте set_table_name 'contributor_name_bases' в вашей модели.

+0

Спасибо, это делает трюк! Надеюсь, кто-то приходит с объяснением в какой-то момент, но пока, знание о 'set_table_name' позволит справиться с этой и аналогичными проблемами. – nullnullnull

+0

Добро пожаловать :) – squiter