0

電子メール アドレスとパスワードを含むデータベース テーブルにリンクされた Rails アプリケーションがあります。システム内の各ユーザーを識別する一意の番号を作成したいと考えています。この番号は登録時にユーザーに与えられ、同じテーブルのフィールド user_id に格納されます。したがって、たとえば、john@foo.bar は ID として 0001 を取得でき、martha@foo.bar は 0002 を取得できます。私の質問は次のとおりです。これを行う最善の方法は何ですか? 最初の user_id (0001) でデータベース (rake db:seed) をシードし、毎回 user_id を +1 するメソッドをコントローラーに記述する必要がありますか? その場合、最後のuser_idを見つけるために最後の行にアクセスするにはどうすればよいですか?

別の方法は、テーブルで最大の user_id を見つけて +1 することです。そのためには、tablename.find_by_user_id または同様のものを使用する必要があると思います (tablename.find_by_user_id.max は機能しますか?)

3 番目の方法は、最新の user_id をどこかに保存し、必要に応じてアプリケーションに取得させることです。この情報はどこに保存できますか?

私はレールに非常に慣れていません。どの方法が最適かについて、ご意見をお寄せいただければ幸いです。

ありがとう、TimmyOnRails

4

1 に答える 1

3

モデルに name と email の 2 つの属性があるとします。デフォルトで、レールはさらに3つの列を生成します

1 ID - 自動増分

2 created_at および updated_at - タイムスタンプ

Rake db:seed は、データベースを事前に作成する場合に適したソリューションの 1 つです。心配する必要があるのは、名前とメールだけです。これらの属性に適切な検証を追加します。残りのレールは処理します。つまり、id はレール自体によって維持されます。心配する必要はありません。Created_at 列と updated_at 列も Rails によって維持されます。

Rails を初めて使用する場合は、 http://railsforzombies.comを確認することをお勧めします。これで、アクティブなレコードについての良いアイデアが得られます。

Railsguides と RailsCasts も、レールの学習教材です。

于 2012-09-30T14:18:34.550 に答える