Skip to content

Railsでサーバ処理を追加する#

Ruby on Railsでは、ファイルを作成して設定するだけでController、つまりはサーバの処理を追加することができます。 WebアプリケーションではURLのパスに紐づけて処理をすることが多いです。

URLとは、サイトを表示するときにブラウザに指定する文字列のことで、例えば https://ukiuni.com/hello のような文字列です。 {通信方式}://{サーバ名}/{パス} のような形式で出来上がっています。

このパスに、処理を紐付けることで、1つのサーバに色々な処理を依頼できるようになっています。

前提#

もし、Railsプロジェクトが手元になければ、こちらの手順でRailsプロジェクトを用意してください。こちらでもコントローラを作成していますが、Railsの大事な処理なので、こちらで改めて説明しています。

Controller作成#

処理を追加します。 app/controllers ディレクトリに my_controller.mdを以下の内容で作成します。 Controllerはapp/controllersにあり、_controller.mdで終わるファイル名であることが必要です。

class MyController < ApplicationController
  def exec
    render :json => {'message' => 'おうどんください。', 'time' => Time.now}
  end
end

classの後の文字は Controllerの_の前の、最初の文字を大文字にしたものにしてください。 ここでは、サーバとブラウザとの間の通信内容によく使われるJSONという形式を使用しています。

コントローラとパスの紐付け#

ファイルを配置したら、config/routes.rb でパスとControllerを紐付けます。 config/routes.rbは以下のようになっています。

Rails.application.routes.draw do
  //省略
end

この、「Rails.application.routes.draw do」と「end」の間にパスとControllerの紐付けを記載します。

Rails.application.routes.draw do
  //省略
  get '/oudon', to: 'my#exec'
end

追加した行は、 {HTTPメソッド} '{パス}' to: '{コントローラと処理するメソッド名}' という構造になっています。

HTTPメソッド、とはブラウザからサーバへの通信の種類のことです。 代表的なものに、get/post があります。 例えば、ブラウザのURLバーにURLを入れたときの通信はgetです。 また、htmlにformを作成し、submitボタンを押すと、postが送信可能です。

{コントローラと処理するメソッド名}は、 コントローラ名#メソッド名 コントローラ名はControllerのファイル名の_の前です。メソッド名はControllerに定義してある「def exec」のdef のあとの部分です。

これでControllerを追加することができました。 おうどんください

簡単ですね。サーバの処理を増やすときは、この要領でControllerを追加してください。

次は、Railsでデータベースを扱ってみましょう。