RubyonRailsアプリケーションのネストされたリソースを作成する方法
序章
Ruby on Rails は、 Ruby で記述されたWebアプリケーションフレームワークであり、開発者にアプリケーション開発への意見のあるアプローチを提供します。 Railsを使用すると、開発者は次のことができます。
- ルーティング、ステートフルデータ、アセット管理などを処理するための規則。
- model-view-controller (MCV)アーキテクチャパターンの確固たる基盤。これにより、モデル内にあるアプリケーションのロジックが、アプリケーション情報の表示とルーティングから分離されます。
Railsアプリケーションに複雑さを加えると、アプリケーションのビジネスロジックとデータベースとのインターフェイスを表す複数のモデルを使用する可能性が高くなります。 関連するモデルを追加するということは、それらの間に意味のある関係を確立することを意味します。これは、情報がアプリケーションのコントローラーを介して中継される方法、および情報がキャプチャされ、ビューを介してユーザーに提示される方法に影響します。
このチュートリアルでは、サメに関する事実をユーザーに提供する既存のRailsアプリケーションに基づいて構築します。 このアプリケーションにはすでにサメのデータを処理するためのモデルがありますが、個々のサメに関する投稿用にネストされたリソースを追加します。 これにより、ユーザーは個々のサメについての幅広い考えや意見を構築することができます。
前提条件
このチュートリアルに従うには、次のものが必要です。
- Ubuntu18.04を実行しているローカルマシンまたは開発サーバー。 開発マシンには、管理者権限を持つroot以外のユーザーと、
ufw
で構成されたファイアウォールが必要です。 これを設定する方法については、 Ubuntu18.04を使用した初期サーバー設定のチュートリアルを参照してください。 - Node.jsおよびnpmがローカルマシンまたは開発サーバーにインストールされています。 このチュートリアルでは、Node.jsバージョン10.16.3とnpmバージョン6.9.0を使用します。 Ubuntu 18.04にNode.jsとnpmをインストールする手順については、 Ubuntu18.04にNode.jsをインストールする方法の「PPAを使用したインストール」セクションの手順に従ってください。
- Ubuntu18.04でrbenvを使用してRubyonRailsをインストールする方法の手順1〜4に従って、ローカルマシンまたは開発サーバーにインストールされたRuby、 rbenv 、およびRails。 このチュートリアルでは、Ruby 2.5.1 、rbenv 1.1.2 、およびRails 5.2.3を使用します。
- Ruby on Railsアプリケーションの構築方法の指示に従って、SQLiteをインストールし、基本的なサメ情報アプリケーションを作成しました。
ステップ1—ネストされたモデルの足場
このアプリケーションは、Active Recordアソシエーションを利用してShark
モデルとPost
モデル間の関係を構築します。投稿は特定のサメに属し、各サメは複数の投稿を持つことができます。 したがって、Shark
およびPost
モデルは、belongs_toおよびhas_manyの関連付けによって関連付けられます。
この方法でアプリケーションを構築するための最初のステップは、Post
モデルと関連リソースを作成することです。 これを行うには、rails generate scaffold
コマンドを使用して、モデル、データベース移行