社畜エンジニア発掘戦線

駆けだしAIエンジニア

Railsでアプリケーションを作る4(コントローラ、ルーティングの編集)

おつかれさまです。

アプリの下準備が整ってきたので、具体的にコードを書いていきます。

MVC+ルーティングの4つのファイルのうち、M(モデル)とC(コントローラ)、2ファイルの作成が完了しています。ここで、どのC(コントローラ)を起動させるかを選択するルーティングの編集を行います。

このルーティングファイルははじめから作成されており、MCのように改めて作成する必要はありません。text_logファイルから下へ、config内に格納されているroutes.rbを編集します。ファイルをエディタで展開し、今回起動するコントローラの名前は「texts」なので、routes.rbに下記のコードを追記します。

resources :texts

f:id:sutokun:20180617123345p:plain

resourcesはRailsにおける「よく使う機能」をまとめたものです、「データを保存する」もこの機能に含まれています。これでルーティングの編集は完了です、めでたしめでたし。

うまくできているか確認します、ターミナルで次の指令を起動します、

$ rake routes

下記のような表示が出てくるとオッケー

f:id:sutokun:20180617125320p:plain

ここには「よく使う機能」の一覧が表示されています、一番右の列、「index、create、new、edit、show、update、destroy」と書かれた7つの機能がそうです。データを入力し、データベースに保存するには「new、create」の機能を使います。


さて、ルーティングの編集は終わったので、次はM(モデル)とC(コントローラ)にとりかかります。ただ、今回のアプリは適当にテキストを保存できるシンプルなものなので、データに複雑な処理を施す必要はありません。そのため、M(モデル)はノータッチ、C(コントローラ)だけを編集します。

コントローラのファイルはtext_logファイルから下へ、app/controllersの内部にあるtext_controller.rbを編集します。

データベースに保存するには「new、create」の機能を使いますが、とりあえず「new」を定義してみます。さらに、データ保存の機能はいったん横において、とりあえず「new」のブラウザページを表示するアクションを作成します。text_controller.rbに下記のコードを追記します。

  def new
  end

f:id:sutokun:20180617141238p:plain

これで特になんの機能もない、newというページを表示するアクションを持つように、コントローラの編集が完了しました。MVC+ルーティングのうち、最後のV(ビュー)をまだ作成していません、コントローラで表示するV(ビュー)ファイルを作成していないので、エラーが出ます。

ここまでをまとめると、

1.ルーティングファイルに「resouces」コードを追記する
2.rake routesで機能を確認
3.使いたい機能のアクションをコントローラに定義する(def〜end)

次はV(ビュー)ファイルでごりごりHTMLを書きます。