私は、RailsモデルのカスタムID(デフォルトの自動インクリメントの代わりに)を使用できるようにしたいと思います。基本的に、すべてのIDはiTunesのストアIDになります。これは長整数だけです。デフォルトの自動インクリメントIDをオフにして、それを設定する必要がありますか?これらのIDは他のモデルの外部キーとしても使用されます。このようなカスタム非自動インクリメントActiveRecord "id"カラムは可能ですか?
答えて
何か:
create_table :blah, {:id => false} do |t|
t.int :my_custom_int_id
end
execute "ALTER TABLE blah ADD PRIMARY KEY (my_custom_int_id);"
あなたがモデルを保存する前に、手動でIDを設定することができます。
a = Model.new
a.id = 8888 #from itunes
a.save
しかし、あなたの代わりに、このアプローチのitunes_id
と呼ばれる別のフィールドを検討すべきです。
私は現在、別の 'itunes_id'フィールドを使用しています。問題は、使用しているAPIがitunes IDを返すので、itunes_id - > my model idを追加検索するのが苦痛だということです。 – markquezada
私は本当に彼が何をすべきか言った方法が好きですが、あなたのアドバイスを提供しています。ベストプラクティス: – baash05
@daveatflowそれは個人的な意見ではなく、ベストプラクティスIMOです。 –
- 1. 自動インクリメントの "id"カラムの問題
- 2. 自動インクリメントIDの
- 3. MySQLではペアで自動インクリメントが可能ですか?
- 4. C#クラス自動インクリメントID
- 5. JavaのHibernate ID自動インクリメント
- 6. Entity Framework ID自動インクリメント
- 7. カラムが自動インクリメントされないmysql
- 8. 自動インクリメントIDをトランザクション内で予約
- 9. App Engineデータストア:NDBでID自動インクリメント
- 10. 流暢なnhibernate自動インクリメント非キー(Id)のプロパティ
- 11. 非自動インクリメントIDを扱うための戦略
- 12. App Engineデータストア内の自動インクリメントID
- 13. カスタムタイプの自動インクリメントIDコード番号
- 14. MySQLテーブルの自動インクリメントIDの固定
- 15. 自動インクリメントIDの必要性
- 16. mysql、カラムBのデフォルト値としてカラム "id"(自動インクリメント)の値を設定する
- 17. mysqlはカラムIDを1から開始し、そこから自動インクリメントを変更します
- 18. 自動インクリメント
- 19. C#が自動インクリメント
- 20. 自動インクリメントC#
- 21. mysql自動インクリメントなしインクリメント
- 22. モンゴース自動インクリメント
- 23. のOracle自動インクリメント
- 24. 自動オーバーロードは可能ですか?
- 25. WPF:「自動」アニメーションは可能ですか?
- 26. 自動インクリメント
- 27. MongoEngineで自動インクリメント
- 28. Django:カスタムPK自動インクリメントを作成していますか?
- 29. 自動インクリメント番号
- 30. SQL Server:ストアドプロシージャ内の自動インクリメントIDを取得しますか?
これは私が探していたようです、ありがとうございます。 – markquezada
また、 'set_primary_key:my_custom_int_id'(Rails 3)または' self.primary_key =:my_custom_int_id'(Rails 4)をモデルに追加する必要があります。 – gregoltsov