Ruby-on-rails-rails-scaffolding
Ruby on Rails-足場
Railsアプリケーション、特にデータベース内のデータへのシンプルなインターフェイスを主に提供しているアプリケーションを開発している場合、scaffoldメソッドを使用すると便利な場合があります。
足場は、安価なデモスリル以上のものを提供します。 ここにいくつかの利点があります-
- フィードバックのために、ユーザーの前でコードをすばやく取得できます。
- あなたはより速い成功によって動機づけられます。
- 生成されたコードを見ると、Railsの仕組みを学ぶことができます。
- 足場を基盤として使用して、開発をすぐに開始できます。
足場の例
_scaffoldingを理解するために、 cookbook というデータベースと recipes というテーブルを作成してみましょう。
空のRails Webアプリケーションを作成する
コマンドウィンドウを開き、この cookbook Webアプリケーションを作成する場所に移動します。 そのため、次のコマンドを実行して完全なディレクトリ構造を作成します。
データベースのセットアップ
データベースを作成する方法は次のとおりです-
Railsにデータベースの検索方法を指示するには、設定ファイルcookbook \ config \ database.ymlを編集し、データベース名をcookbookに変更します。 パスワードは空のままにします。 終了したら、次のようになります-
Railsでは、異なるデータベースを使用して、開発モード、テストモード、または運用モードで実行できます。 このアプリケーションは、それぞれに同じデータベースを使用します。
生成された足場コード
scaffoldアクションにより、Railsは必要なすべてのコードを動的に生成します。 _scaffold_をスクリプトとして実行することにより、すべてのコードをディスクに書き込むことができ、そこでコードを調査して、要件に合わせて調整を開始できます。
それでは、足場ヘルパースクリプトを使用して、足場コードを手動で生成します。
以下に示すように自動ファイルを生成します-
コントローラー
コントローラーの背後にあるコードを見てみましょう。 このコードは、 scaffold ジェネレーターによって生成されます。 app/controllers/recipes_controller.rbを開くと、次のようなものが見つかります-
Railsアプリケーションのユーザーがアクションを選択するとき、例えば 「表示」-コントローラは適切なセクションのコードを実行します-「def show」-そしてデフォルトで同じ名前のテンプレートを表示します-「showl.erb」。 このデフォルトの動作は上書きできます。
コントローラーは、_find、find_all、new、save、update_attributes、destroy_などのActiveRecordメソッドを使用して、データベーステーブルとの間でデータを移動します。 SQLステートメントを記述する必要はありません。railsが自動的にそれを処理します。
この1行のコードにより、データベーステーブルが活性化されます。 それはあなたのデータへのシンプルなインターフェース、および方法を提供します-
- 新しいエントリを作成する
- 現在のエントリを編集する
- 現在のエントリを表示する
- 現在のエントリを破棄する
エントリを作成または編集するとき、scaffoldはフォームの生成や処理などのすべてのハードワークを行い、次のタイプの入力をサポートする巧妙なフォーム生成を提供します。
- 単純なテキスト文字列
- テキスト領域(またはテキストの大きなブロック)
- 日付セレクター
- 日時セレクター
Rails Migrationsを使用して、テーブルを作成および管理できます。
今、クックブックディレクトリに移動し、次のコマンドを使用してWebサーバーを実行します-
次に、ブラウザを開いて* http://127.0.0.1:3000/recipe/new。*に移動します。これにより、レシピテーブルに新しいエントリを作成する画面が表示されます。 スクリーンショットを以下に示します-
あなたが*作成*ボタンを押して新しいレシピを作成すると、あなたの記録がレシピ表に追加され、次の結果が表示されます-
レコードを編集、表示、および破棄するオプションが表示されます。 したがって、これらのオプションを試してみてください。
また、URL [[1]]
モデルの強化
Railsは、多くのエラー処理を無料で提供します。 これを理解するには、空のレシピモデルにいくつかの検証ルールを追加します-
次のようにapp/models/recipe.rbを変更してから、アプリケーションをテストします-
これらのエントリは自動チェックを提供します。
- validates_length_of -フィールドは空白ではなく、長すぎません。
- validates_uniqueness_of -重複した値がトラップされます。 デフォルトのRailsエラーメッセージの代わりに、ここでカスタムメッセージを指定しました。
足場を作成する別の方法
上記のアプリケーションを作成し、*生成された足場コード*を以下のように作成します
上記のコードは、画像の下に示すように、タイトルと指示列を含むsqlite3を使用して、データベース付きの自動ファイルを生成します。
以下の構文を使用してデータベースを移行する必要があります。
最後に、次のコマンドラインを使用してアプリケーションを実行します-
上記の出力画像のように結果が生成されます。
ビュー
すべてのビューと対応するすべてのコントローラーメソッドは、 scaffold コマンドによって作成され、app/views/recipesディレクトリで使用できます。
足場の違いは何ですか?
前の章を読んだことがあれば、データのリスト、表示、削除、作成などのメソッドを作成したことを確認しておく必要がありますが、scaffoldingはその仕事を自動的に行います。