Rails Tutorial Memo
4章までのRuby on Rails のメモ
2章
MVCの挙動
[config/routes.rb]
URLとアクションの組合せを設定する。
* code *
Rails.application.routes.draw do
resources :users ←URLの設定
root 'application#hello' ←アクションの設定
end
* mean *
ルートにアクセスするとApplicationコントローラ内のhelloアクションにルーティングされるようになる。
そのアクションひとつひとつに割り当てられてる処理を書く部分が、
[app/controllers/users_controller.rb]
[app/controllers/microposts_controller.rb]
before_action : ????
????をほかのアクションより前に作動させる。
⑥ @記号で始まる変数をRubyではインスタンス変数と呼び、Railsのコントローラ内で宣言したインスタンス変数はビューでも使えるようになる。
3章
生成したコードを元に戻したいとき
rails generate controller StaticPages home help ・・自動生成
rails destroy controller StaticPages home help ・・取消処理
ちなみに、
home help はそれぞれアクションとなる。
データベースのマイグレートを一つ前に戻すとき
rails db:rollback
データベースのマイグレートを最初の状態に戻したいとき
rails db:migrate VERSION=0
HTTPメソッドについて
GET : Web上のデータを読み取る時に使う
POST : ページ上のフォームに入力した値を、ブラウザから送信する時に使う
PATCH : サーバー上の何かを更新
DELETE : サーバー上の何かを削除
上から順によく使用する。
<プレースホルダーとは>
点線で囲まれたボックスであり、スライド レイアウト内に配置される。
この中にコンテンツが入り、組み込みスライド レイアウトにはすべて、コンテンツ プレースホルダーが含まれる。
Test
assert_select "title", "Home | Ruby on Rails Tutorial Sample App"
タグ内に「Home | Ruby on Rails Tutorial Sample App」という文字列があるかどうかをチェック。4章
[full_titleヘルパー]
ページタイトルが定義されていない場合は基本タイトルを返し、定義されている場合は基本タイトルに縦棒とページタイトルを追加して返します
シングルクオート文字列の中では式展開が出来ない。
*code*
出力 → '#{foo} bar' # シングルクォート内の文字列では式展開ができない
入力 → "#{foo} bar
出力 → '\n' # 'バックスラッシュ n' をそのまま扱う
入力 → "\n"
reverseメソッドを使うと、文字列の逆から表示される。
splitを使用すると
*code*
入力 → "foo bar baz".split # 文字列を3つの要素を持つ配列に分割する
出力 → ["foo", "bar", "baz"]
のように分けてくれる。
また、
*code*
入力 → "fooxbarxbaz".split('x')
出力 → ["foo", "bar", "baz"]
のようにsplitの引数に文字を入れることでその引数の文字で区切ることもできる。
code1のように入力した場合、aの中身は変更しない。
aの中身を変更したい場合は、code2のようにそのmethodに対する破壊メソッドを使用する。
また、code3のようにpushメソッド (または同等の<<演算子) を使って配列に要素を追加することもできる。
*code1*
入力 → a.sort
出力 → [8, 17, 42]
入力 → a.reverse
出力 → [17, 8, 42]
入力 → a.shuffle
出力 → [17, 42, 8]
*code2*
入力 → a.sort!
出力 → [8, 17, 42]
*code3*
入力 → a.push(6) # 6を配列に追加する
出力 → [42, 8, 17, 6]
入力 → a << 7 # 7を配列に追加する
出力 → [42, 8, 17, 6, 7]
入力 → a << "foo" << "bar" # 配列に連続して追加する
出力 → [42, 8, 17, 6, 7, "foo", "bar"]
参考ページ
https://railstutorial.jp