Railsでアプリケーションやってみよー
Ruby on Railsを始めてみる
アプリケーションのひな型を作る
Railsで新規アプリケーションを作成し、開発を進めていくためにはrails newコマンドを使用します。
このコマンドを実行すると、Railsアプリケーションのひな形(予め用意されたアプリケーションの基本形)が作成されます。
(Windows :コマンドプロンプト Mac:ターミナル)
このコマンドだけで、必要なファイルが一通り自動生成される
Railsで画面表示するのに必要なファイル
大きく分けて以下のフォルダやファイルを変更していきます
これらを言い換えてみると、このように表現できます。
- routes.rb → URL(WEBページの住所)とControllerをつなげる道
- Controller → 機能を作る(司令塔)
- View → 画面(WEBページ)に表示されるもの
Controllerの作成
MVCの中の「C」であるControllerは、画面上でユーザーから入力された情報を処理し、最終的にユーザーにviewファイル(処理結果としてユーザに表示する画面)を返す役割を担っています。アプリケーションの機能を制御する司令塔となります。
処理とは以下の3つのこと指します。
- Modelとのやり取り
- viewファイルに渡す変数(インスタンス変数)の定義
- ユーザーに表示するviewファイルの指定
コントローラーの作成コマンド
コントローラを作成するためには以下のコマンドを実行します。
今のところ、フォルダ構成はこんな感じ
Topページを作ってみる
topページを表示するためのアクションを定義していきます。defはdefineの略で「定義する」という意味です。
これだけでtopアクションが定義されます!
ここまででコントローラの用意が終わったので、次はルーティングを設定していきましょう。
Routing(ルーティング)の設定
利用者がRailsのアプリケーションを利用するには、ブラウザを経由してコントローラのアクションを呼び出す必要があります。ブラウザから特定のURLへアクセスすることでアクションが呼び出されますが、URLとアクションを結びつけるのがルーティングです。
ルーティングの記述場所
ルーティングの設定は、Railsアプリケーション作成時に自動的に作成される「config/routes.rb」ファイルに記述します
ルーティングの記述方法
基本的な書き方は、こんな感じ
HTTPについて(Hyper Text Transfer Protcol)
HTTPがサーバにリクエストする際、HTTPメソッドというものがあります。通信のやり取りの手法を用途で定義したものです。
GET:ブラウザからサーバへURLを送信してWEBページを取得(GET)する。単にWEBサイトを閲覧する際には、このメソッドが利用される。
POST:ブラウザからサーバへURL以外の「データ」も一緒に送信(POST)して処理を命令する。会員情報の登録、記事投稿など、サーバに情報を送信するために利用される。
DELETE:ブラウザからサーバへURL以外の削除をするための情報も一緒に送信して処理を命令する。会員情報の削除、記事の削除など、削除の処理をするために利用される。
今回は「画面を表示したい」ため、上記手法としてはGETを利用し、どのURLにアクセスしたときに、どのコントローラのアクションを呼び出すかを設定しています。記載するときは小文字で「get」と入力します。
今回は「topというURLにアクセスしたときに、rootコントローラのtopアクションが呼び出される」ように設定していきます。
これでルーティングは定義できたので、最後にViewファイルを作成します
Viewファイルの作成
Railsはルーティング → コントローラ → ビューといった流れになっているので、最後に対応するビューファイルを用意して表示してみましょう
Viewファイルの作成場所
app/views/コントローラ名
といったフォルダの中へ配置していく必要があります。
今回はapp/views/root/フォルダ以下に作成しましょう。
コントローラ名と対応したところにファイルを作るのと同じように、ビューファイルの名前はアクション名と同じ名前から始めるルールがあります。なので
top.html.erb
としましょう。
とりあえず、何か文字を表示しましょう
ralisサーバーの起動
アプリケーションを動かすためにはサーバが起動している必要があります。railsには開発環境用に用意されている物があるのでそれを起動して動作を確認していきます。
以下のコマンドで起動できます。
うまくサーバが立ち上がるとアプリケーションへアクセスできるようになります。
実際にURLにアクセスしてTopページが表示されるか確認してみましょう。
________________________
xoxo Ruby(^_-)-☆