私のレールアプリには、Customer、User、Adminなどの異なるモデルがあります。プライマリIDを文字列として作成し、その前に文字を付加したいと思います。顧客のために、idはC1、C2、C3のようなものになります。ユーザーにとっては、U1、U2、U3など。ランダムプライマリIDをレールに生成する3
0
A
答えて
2
になりますあなたは本当に、この情報が必要な場合は、あなただけのstring_id
と呼ばれる方法や、ユーザーが定義するカスタム接頭辞で先頭に付加数値id
を返す何かを定義することができますか?
非数値のプライマリキーの比較(DB内のレコードを検索する場合)は、アプリの処理速度が遅くなるだけで、なぜ.class.name
呼び出しを行うことができるのか分かりませんクラス名を戻すためにあなたが選んだモデル、クラスの最初の文字、または何でも。私はあなたが正当化する必要があると思うとあなたの質問にこれのための技術的な必要性を説明する必要がある、それ以外の場合は本当に悪い考えのように見えます。
また、質問のタイトルは「ランダム」を指定しますが、ランダムな部分はどこですか?あなたは正確に何をしようとしていますか?
基本的にこれまでの質問で提供した情報に基づいて、主キーとして文字列を使用するよりも、複数の優れた方法があります。
2
これを行うための本当に、非常に、スーパーの正当な理由がない限り、ただしないでください。独自のキーを生成することは、誤動作を引き起こすまでは素晴らしい考えです。
代わりに、一意のインデックスを持つ補助キーを作成し、この目的に使用します。
0
代替ID列を宣言することも、独自のキーを定義することもできます。例えば
:
class Customer < ActiveRecord::Base
self.primary_key = "C_"+ #your column
end
関連する問題
- 1. セルフID、レコードが作成される前に - レール3
- 2. レールでセッションIDを見つける3
- 3. ユーザーにリダイレクトする方法:/ id成功したログイン後にログインする - レール3
- 4. レールに自動インクリメントフィールドを生成する
- 5. レール3のパスを自動生成しますか?
- 6. IDを生成するandroid
- 7. spree 3.Xとレール5で静的ページを生成する方法
- 8. rakeタスクの代わりに3つのレールが生成されますか?
- 9. 手動で写真のタグをレールに作成する3
- 10. レールにActiveModelオブジェクトを作成する方法3
- 11. 共有部分をレールに編成する方法3
- 12. レール2.3.8のプロジェクトをレール3にアップグレード
- 13. グループ別にIDを生成
- 14. レール3
- 15. レール3
- 16. レール3
- 17. レール:私は3層ネストされたモデル持っているID
- 18. の生成のliタグがレールに
- 19. 2/3レコードをレールにマージする
- 20. カスタムアローンをレールにアップロードする方法3
- 21. レール3テーブルにフィールドを追加する
- 22. ビデオをレールにアップロードする3
- 23. レール3にシンプル/擬似APIを作成しますか?
- 24. RailsのオーバーライドIDがレール のidを変更するにはnew.html.erb
- 25. リソースの秘密URLをレールに生成する
- 26. レール内のネームスペース内にコントローラを生成する方法
- 27. grails 3スプリングセキュリティユーザドメインIDフィールド合成
- 28. 2つのページ(レール3)に2つのレンダリングテンプレート(レール3)
- 29. オブジェクトIDにレールを割り当てる
- 30. Rails 3:偽のデータを生成してDBを生成する
これを望むためのあなたの理由は何を見ますか? –
あなたの質問は何ですか? – Veger