LoginSignup
1
0

More than 5 years have passed since last update.

Ruby on Rails Tutorialのメモ

Posted at

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アクションにルーティングされるようになる。

スクリーンショット 2018-02-13 17.27.23.png

そのアクションひとつひとつに割り当てられてる処理を書く部分が、
[app/controllers/users_controller.rb]
[app/controllers/microposts_controller.rb]

before_action : ????
????をほかのアクションより前に作動させる。

スクリーンショット 2018-02-13 16.56.19.png

⑥ @記号で始まる変数をRubyではインスタンス変数と呼び、Railsのコントローラ内で宣言したインスタンス変数はビューでも使えるようになる。

3章

スクリーンショット 2018-02-15 14.32.05.png


生成したコードを元に戻したいとき

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

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