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でデータベースを扱ってみましょう。