1

私は Rails を初めて使用しますが、正しいスタートを切りたいと思っています。だから私はいくつかの明確化が必要です。

必要な登録フィールドは、ユーザー名、電子メール、パスワード、誕生日、郵便番号です。

したがって、「rails generate scaffold User name:string email:string, birthday:string zip code:string」を実行します。次に、user_spec ファイルに password_digest 列を追加します。

ユーザー CP から登録した後にユーザーが入力できるプロファイル フィールドは次のとおりです: 名前、性別、民族 (複数を選択するオプション)、電子メール、パスワード、誕生日、郵便番号 (米国ではなく、都市、国をリストします) 、教育、宗教、政治、子供、身長、ユーザーの喫煙、ユーザーの飲酒、キャリア、およびユーザーについてのセクション。

確認が必要なのは、このすべての情報に対してスキャフォールドを生成する必要があるか (必要な情報に対してユーザーを作成し、追加のプロファイル情報に対して UserProfile という別のスキャフォールドを作成するか)、基本的にすべての情報に対して user_spec.rb 内の列を使用する必要があるかどうかです。 ?

4

3 に答える 3

1

アイデアは、すべてのフィールドを 1 つのテーブルに保持することです。これは、移行を使用して簡単に実行できます。

ユーザー名、電子メール、パスワード、誕生日、郵便番号、名前、性別、民族 (複数を選択するオプション)、教育、宗教、政治、子供、身長、喫煙者、飲酒者、キャリアなどのすべてのフィールドを追加した後、ユーザーについてのセクション。

次に、ログイン後とログイン前の状態を暗示して、必要に応じてフィールドを表示/非表示にすることができます。

それを行う一般的な方法は次のとおりです。

if current_user

//show the fields after login
else
//show the fields before login
end

これは、それを行う方法の一般的な考え方であることに注意してください。ただし、任意のビューのコード内のどこでも使用できます。

于 2013-02-11T14:44:15.637 に答える
0

実際のデータベース列は、データベース移行ファイルで定義されます。モデル定義でそれらすべてを定義する必要はありません。db/migrations説明したようにジェネレーターを使用してモデルの足場を構築すると、説明した列を作成する移行ファイルが見つかります。

「足場」を実際のコードとして考えているように思えますが、これは混乱を招きます。代わりに、足場は、モデル コード、コントローラー コード、およびビュー コードの作成を定義する青写真と考えてください。足場は生成しません。スキャフォールドを使用して、モデル、ビュー、およびコントローラーを生成します。

于 2013-02-11T14:35:44.553 に答える
0

私はレールにかなり慣れていませんが、Scaffold オプションはお勧めしません。必要なフィールドを指定してコマンド ラインからユーザー モデルとユーザー コントローラーを生成し、必要に応じてビューを作成することをお勧めします。

足場はおそらく必要以上のものを提供し、将来的に混乱や問題を引き起こすでしょう.

Michael Hartl の「Learn Rails by Example」(電子ブックとして無料!) をチェックしてください。あなたがそれをやりたくない場合でも、彼は Twitter アプリを作成する方法を読者に説明しています。いくつかの章を読むと役立つと思います。幸運を!

于 2013-02-11T14:36:36.800 に答える