2015-07-31 2 views
1

В моем приложении у меня есть модель под названием event.rb, и я хочу, чтобы каждое событие имело type. Я не хочу добавлять столбец в db для типа атрибута, потому что будет как 10 разных типов (и не намного больше), и я хочу, чтобы это было i18n, что одно и то же значение имеет строковое представление на английском языке , португальский, испанский, и так один и т. д.Модель с отношением has_one с атрибутом i18n

Любые идеи?

+1

Я бы предложил создать новую модель 'EventType' добавить' one to many' ассоциацию между 'event' и' EventType', а в 'EventType' имеет все представления строк в ней, и вы можете получить к ним доступ через' Event. last.event_types', и это вернет вам все типы для этого события. – Athar

+0

Это начало, и как я могу сделать это i18n? – tvieira

+0

для этого я предполагаю, что вам нужно использовать какой-то драгоценный камень. i18n или rails-18n. https://github.com/svenfuchs/rails-i18n. но все зависит от вашего требования. если ваши типы являются постоянными. заполнять типы на всем языке, используя seed.rb, и добавить много ко многим отношениям между типом и событием через типы событий. – Athar

ответ

0

Поскольку эти типы являются константами, вы можете создать модуль, содержащий все разные типы, и определить каждый из них в своих файлах i18n. Таким образом, вы можете искать переведенный текст примерно как event.type где угодно.

Смежные вопросы