2016-09-13 2 views
0

У меня проблема, связанная с тем, что мои URL-адреса удобны для пользователя.проблема с permalink с большим количеством

Это URL у меня есть, а вариация

3309050323-aa-aaaaaa-aaaaa-aaaaaa-aaaa-aaaaaaa-11-2016 

Однако я получаю при использовании URL

3309050323 is out of range for ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Integer with limit 4 

вопрос является первым эта ошибка появляется является текс область (был строка, но я изменил его, чтобы проверить, если тот вопрос)

Heres миграция

def self.up 
    add_column :events, :permalink, :text 
    add_index :events, :permalink 
    end 
    def self.down 
    remove_column :events, :permalink 
    end 

Любые идеи, почему это не будет работать?

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

Благодаря Сэм

Редактировать

t.text  "permalink" 
    t.string "custom_event_id" 
    end 

    add_index "events", ["permalink"], name: "index_events_on_permalink", using: :btree 

Это мой schema.rb, мне интересно, если индекс не имеет ничего общего с ним?

+0

Каков код вашего контроллера, выполняющий с параметрами, которые он получает? –

+0

@event = Event.find_by_permalink (params [: id]) Это код контроллера, который его использует –

+0

Какие остальные столбцы таблицы? –

ответ

0

3309050323 находится вне диапазона для целого столбца в Postgres

https://www.postgresql.org/docs/9.5/static/datatype-numeric.html

попробовать BIGINT вместо этого.

+0

, но его текстовый столбец, а не целое число! –

+0

Это не то, что говорит вам трассировка стека. Попробуйте запустить: psql <ваша база данных>, затем \ d + события. Это один из способов увидеть схему. –

+0

См. Редактирование в секунду –

0

Попытка удалить эти индексы

add_index :events, :permalink 

Если не поможет. Попробуйте сгенерировать строковый уникальный префикс вместо цифр