2016-09-13 5 views
0

私は自分のURLをユーザーフレンドリーにしようとしています。permalink issue with big number

これは、私はこのエラーが表示され得るしかし

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

URLを使用すると、問題があるときに最初にテックスエリアであるだけでなく、変化

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

私が持っているURLです(ました文字列ではなく、私は、移行

相続人)問題のthatsかどうかを確認するために

それを変更しました

これがうまくいかない理由は何ですか?

最初の数字のセットを追加するまで、リンクはうまく動いていました。私は、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代わりにBIGINTを試みるPostgresの

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

の整数列の範囲外です。助けない場合

+0

ですが、そのテキスト列は整数ではありません! –

+0

あなたのスタックトレースがあなたに言っていることではない。 psql <データベース>、次に\ d +イベントを実行してみてください。それは、スキーマを見る1つの方法です。 –

+0

2回目の編集を参照 –

0

add_index :events, :permalink 

このインデックスを削除するようにしてください。数字の代わりに文字列の一意のプレフィックスを生成してみてください