Rails: friendly_id использует имя, а не слаг в качестве идентификатора - PullRequest
1 голос
/ 18 октября 2011

Использование: Rails 3.0.3 Friendly_id: 4.0.0.beta11

Я создал полностью рабочую версию приложения для разработки, в которой у меня все работает, включая URL-адрес friendly_id, например, domain.com/cars/mitsubishi

.

Сейчас я развертываю приложение на Heroku, но по какой-то причине не могу заставить friendly_id работать.

Проблема: при развертывании на Heroku «имя» отображается как friendly_id, а не slug_en или slug_se. Вычисление.first.friendly_id дает, например, «Я вычисление», а не «Я вычисление», которое будет содержимым slug_en.

Модель (Расчет)

  extend FriendlyId
  friendly_id :name, :use => :slugged, :use => I18n

Миграция (расчет):

        t.string :slug_en
        t.string :slug_se

Migratiotion2:

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 в качестве идентификатора и slug_en для: en.

Стоит упомянуть, что Heroku использует postgre, а я использую mysql локально, если это имеет значение.

Мои вопросы:

  1. В чем обычно может быть проблема, если я получу атрибут name как friendly_id вместо slug_en или slug_se
  2. Что-то не так с кодом, который я здесь представил?
  3. Может ли postgre / mysql-Differences вызвать это?
  4. Разве в моей установке Heroku не создаются индексы?

Спасибо!

1 Ответ

0 голосов
/ 19 октября 2011

Казалось, что проблема заключается в том, когда я загружаю файлы в Heroku.Heroku использует friendly_id 4.0.0.beta8 и впервые в 4.0.0.beta11 появляется slug_en / slug_se (если я правильно понимаю).

Итак, проблема все еще не устранена, но изменена напроблема другого типа, которая на самом деле не связана с вопросом, поставленным в этом билете.

К вашему сведению: новая проблема - «Почему версия friendly_id меняется на более раннюю версию».

...