2011-01-29 5 views
0

を作成します「タイトル」列を含む表を作成しますが、「会社ID」列は無視されます。 ActiveRecordがcompanyidカラムを見つけることができないので、アプリはもちろんクラッシュします。私は(私はRoRのは、このデータタイプを処理する方法を知っている知っている)、手動でアプリの動作をDBの列を追加する場合...Rubyはデシベル中にUUIDの列を無視します、それを作成します。私はデシベルを実行すると、しかし、UUID</p> <p>:</p> <p>ジョブ・タイトル:文字列の企業ID Iのようなものを使用してモデルを作成しようとしている

を私はDBのプロビジョニングと移行スクリプトが正常に実行したいと思います。私はPostgreSQL 9.0とpostgres-pgアダプタを使用しています。

私がする必要があることは何ですか?ありがとう!

答えて

4

これは役立つはず:

Ruby on Rails: UUID as your ActiveRecord primary key

UUIDがサポートされているタイプではないので、あなたの移行が機能していません。リンクを見ると、UUIDを型として列名と文字列として使用していることがわかります。また、id列を無効にし、UUID:string列を主キーに設定しました。

Postgresアダプターにsimplified typeもあります。これは、手動で列を作成した後の動作を理解するのに役立ちます。 UUIDを文字列にマップするだけですが。

Postgres UUIDを処理できるように移行を修正することは、この問題を抱えている誰かがRailsに貢献したいが、Postgres UUIDが実際にはあまり効果がないと考えられる場合、彼らは単に文字列であるかもしれないIDを生成する。

+0

PostgreSQLでは、uuidsはVARCHAR2(またはOracle以外のデータベースにあるようなVARCHAR)として保存されません。これは128ビットのバイナリ値として保存されます。これはキャストです:もちろんvarchar/textも可能です。 –

+0

私の悪いです。あなたは確かに正しいので、私は自分の答えを編集して、夕食にデザートのために謙虚なパイを持っていました。 – srboisvert

+1

googleのためのもう1つのフォローアップ:Rails3の主キーとしてのUUID https://gist.github.com/937739 – srboisvert

関連する問題