渡り鳥の旅路

元半導体系エンジニア、今Webエンジニアの雑記

PHPer目線のRailsチュートリアル学習メモ#2

#1はコチラ

続けて雑に書いていく

ソースコードはチュートリアルから引用

DBまわり

ORMについて
  • RailsではActive Recordを採用している。
  • Active RecordのオーナーはPostgreSQLに対するメンテは熱心だが、MySQLに対して冷たい(kamipoさんがMySQLのために日夜コミットされている。感謝)

  • CakePHPではEntityがあったがRailsではどうか?

  • LaravelのORMはEloquent
ほか
  • Controller名は複数形、Model名は単数形になるのはCakePHPと同じ
  • 同じくマイグレーションもある (そもそもRails->CakePHPだけど)
  • グヮッ https://youtu.be/2Ag8l-wq5qk
7.1.2 Userリソース

https://railstutorial.jp/chapters/sign_up?version=5.1#sec-a_users_resource

例えばUserモデルを作成済の場合、routes.rbにresourcesを記述するだけで、RESTfulなリソースに必要なアクションを利用できるようなる。

config/routes.rb

.
.
.
resources :users

Railsのルーティングについてはコチラ

7.1.3 debuggerメソッド

https://railstutorial.jp/chapters/sign_up?version=5.1#sec-debugger

byebug gemを入れるとdebuggerメソッドを使い直接的なデバッグを遂行できる。

例えば下記のように書いて/users/show/:idにアクセスすると、debuggerが差し込まれた時点での状態を確認することができる。

class UsersController < ApplicationController

  def show
    @user = User.find(params[:id])
    debugger // ココ
  end

  def new
  end
end

例えば下記のようにdebugger時点でのuserが持つ属性を確認することができる。

@Railsサーバを立ち上げたターミナルのbyebugプロンプト上

(byebug) @user.name
"Example User"
(byebug) @user.email
"example@railstutorial.org"
(byebug) params[:id]
"1"
  • CakePHPだとDebug Kit - 3.6はあったけど、debuggerは用意されてないはず(IDE使えばできるけど。PhpStorm + Xdebugとか)