#ruby-on-rails #internationalization #friendly-id
#ruby-on-rails #интернационализация #friendly-id
Вопрос:
Использование: Rails 3.0.3 Friendly_id: 4.0.0.beta11
Я создал полностью рабочую версию приложения для разработки, в которой у меня все работает, включая URL-адреса friendly_id: s, подобные domain.com/cars/mitsubishi
Сейчас я развертываю приложение на Heroku, но по какой-то причине я не могу заставить friendly_id работать.
Проблема: когда я развертываю его на Heroku, он выдает мне «name» как friendly_id, а не slug_en или slug_se. Calculation.first.friendly_id выдает, например, «я — вычисление» в отличие от «я — вычисление», которое было бы содержимым slug_en .
Модель (вычисление)
extend FriendlyId
friendly_id :name, :use => :slugged, :use => I18n
Миграция (вычисление):
t.string :slug_en
t.string :slug_se
Миграция2:
add_index :calculations, :slug_en, :unique => true
add_index :calculations, :slug_se, :unique => true
Проблема в том, что мне нужно отправить (heroku db: push) мою локальную базу данных в Heroku (поскольку она заполнена данными), и поэтому я не уверен, насколько я могу доверять миграции. Насколько я понимаю, они перезаписываются db:push .
Теперь это не должно иметь большого значения, поскольку локально оно работает нормально. Если я использую I18n.locale = :se, это даст мне slug_se в качестве id и slug_en для :en .
Стоит упомянуть, что Heroku использует postgre, а я использую mysql локально, если это имеет значение.
Мои вопросы:
- В чем обычно может быть проблема, если я получаю атрибут name как friendly_id вместо slug_en или slug_se
- Что-то не так с кодом, который я представил здесь?
- Могут ли различия postgre / mysql вызвать это?
- Это вопрос индексов, которые не создаются при моей установке Heroku?
Спасибо!
Ответ №1:
Казалось, проблема заключается в том, что когда я загружаю файлы в Heroku. Heroku использует friendly_id 4.0.0.beta8, и он является первым в 4.0.0.beta11, где появляется slug_en / slug_se (если я правильно понимаю).
Итак, проблема все еще не исправлена, но изменена на проблему совершенно другого типа, которая на самом деле не связана с вопросом, заданным в этом билете.
К вашему СВЕДЕНИЮ: новая проблема заключается в том, «Почему версия friendly_id изменяется на более раннюю версию».