1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Rails] 初心者がコーディングする際の事前知識(コントローラー作成、アクション作成、アクション以外のクラス作成、ルーティング設定)

Posted at

背景

Rails環境構築ができた後のコーディングの進め方をまとめました。

また、Ruby自体初心者の方は下記の記事に目を通しておくといいと思います。
Ruby基礎文法

コントローラー作成

コントローラーは基本的にモデル単位(DBのテーブル単位)で作成します。コントローラー名は複数形にします。
下記コマンドでコントローラーとコントローラーに対応するViewファイルをまとめて作成できます。
ちなみに、Railsの命名規則でファイル名がスネークケース、クラス名はキャメルケースとなっています。

rails generate controller コントローラー名

上記コマンド実行時のコントローラー名はスネークケース、キャメルケースのどちらでも作成されるファイル名はスネークケースになります。
また、上記のコマンドを使わず手動でコントローラーを作成することもできます。その際はコントローラーに対応するViewファイルも作成しましょう。

アクション作成

アクションとはController内のメソッドのことです。
アクション内で行う処理がない場合も空のメソッドを作成します。
下記のようにすると、コマンドでコントローラー作成と同時にアクションを作成できます。

rails generate controller コントローラー名 アクション名1 アクション名2

新しく作ったアクションにさせたい処理が既存アクションですでに実装されている場合、renderを使用することで既存アクションを使いまわすことができます。下記は例です。

def create
  #他アクションに対応するViewを返す
  render action: :new
  #他コントローラーのアクションを返す
  render template: "hoge/new"
  #jsonを返す
  render json: @hoge
  #テキストを返す
  render text: "hoge"
  #xmlを返す
  render xml: @hoge
end

アクションではActiveRecordを介してデータベースを操作し、Viewに値を渡します。
下記は7つのアクションについての記事です。
[Ruby on rails]7つのアクション以外のアクションの設定

アクション以外のクラス作成

プロジェクト内の任意の場所にディレクトリを作成し、そこにクラスを作りましょう。(app/commonclass/Hoge.rbやlib/Hoge.rbなど)
作ったらコントローラーから下記のように読み込ませます。

class HogeController < ApplicationController
  #クラス読み込み
  require './app/commonclass/hoge'
  def index
  end
end

上記のようにrequireを使う以外にも、config/application.rbに下記を追記すれば読み込ませることができます。

config.autoload_paths += %W(#{config.root}/読み込ませたいディレクトリ #{config.root}/読み込ませたいディレクトリ)

ルーティング設定

下記の記事を参考にしました。
Rails ルーティング 基礎 まとめ

蛇足

下記は命名規則についての記事です。
Railsにおける命名規則

特に下記の記事を参考にさせていただきました。
他言語経験者による初めてのrails
【Rails】クラスファイルを用意してcontrollerから呼び出したい

最後に、参考にさせていただいた記事の投稿者の皆様、ありがとうございます。
私の記事に不備などありましたらご指摘いただけると幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?