1
1

【Railsチュートリアル】第1-5章 まとめ

Last updated at Posted at 2024-03-23

第1章

サーバー実行

ターミナル

rails server

ファイル確認

ターミナル

ls app/controllers/*_controller.rb

Gitの設定内容の確認

ターミナル

git config --list

全ての変更ファイルをステージング

ターミナル

git add -A

現在のステージング状態を知る

ターミナル

git status

ステージングされた変更内容をリポジトリに保存

ターミナル

git commit -m "Initialize repository"

これまでのコミットメッセージ履歴を確認

ターミナル

git log

直前にコミットした状態まで戻る

ターミナル

git restore

ブランチを新たに作成し、移動する

ターミナル

git switch -c modify-README

ローカルブランチの一覧を表示

ターミナル

git branch

ブランチの変更をマージ

ターミナル

git merge modify-README

ブランチを削除

ターミナル

git branch -d modify-README

プッシュする

ターミナル

git push

第2章

リソース作成

ターミナル

rails generate scaffold User name:string email:string

データベースをマイグレートする

ターミナル

rails db:migrate

リソースに関連するRESTfulルートを自動生成

config/routes.rb

resources :users

'/'で呼び出された時に、該当するアクションを呼び出す

config/routes.rb

root 'users#index'

複数持つことができる関連付け

app/models/user.rb

has_many :microposts

一つのみ持つことができる関連付け

app/models/micropost.rb

belongs_to :user

コンソールを使う

ターミナル

rails console

第3章

サンプルアプリケーションを生成する

ターミナル

cd ~/environment
rails _7.0.4.3_ new sample_app
cd sample_app/

定義されたルートに該当するアクションを呼び出す

ターミナル

get  "static_pages/home"

直前のHTTPリクエストが成功したかをチェックする

test/controllers/static_pages_controller_test.rb

get static_pages_home_url
assert_response :success

ファイル名を変更する

ターミナル

mv app/views/layouts/application.html.erb layout_file

タグ(第1引数)の中に該当文字列(第2引数)があるかをチェックする

test/controllers/static_pages_controller_test.rb

assert_select "title", "Home | Ruby on Rails Tutorial Sample App"

ラベル(第1引数)と文字列(第2引数)を関連付ける

app/views/layouts/application.html.erb

<% provide(:title, "Home") %>

生成したHTMLを共通レイアウトに挿入する

app/views/layouts/application.html.erb

<%= yield %>

第4章

CSS(第1引数)を全てのメディアタイプで使えるようにする

app/views/layouts/application.html.erb

<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>

ヘルパーを定義する

app/helpers/application_helper.rb

def full_title
end

シングルクォート内の文字列では式展開ができない

ターミナル

>> '#{foo} bar'     
=> "\#{foo} bar"

どんなオブジェクトも強制的に論理値に変換する

ターミナル

>> !!nil
=> false

文字列を配列に分割する

ターミナル

>>  "foo bar     baz".split     
=> ["foo", "bar", "baz"]

配列の内容を変更する(メソッドに!をつける)

ターミナル

>> a
=> [42, 8, 17]
>> a.sort!
=> [8, 17, 42]
>> a
=> [8, 17, 42]

文字列を配列に変換する

ターミナル

>> a
=> [42, 8, 17, 6, 7, "foo", "bar"]
>> a.join                       
=> "4281767foobar"

%wを使って文字列の配列に変換する

ターミナル

>> a = %w[foo bar baz quux]         
=> ["foo", "bar", "baz", "quux"]

添字に-1を使って配列の長さを選択

ターミナル

>> a = (0..9).to_a
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>> a[2..-1]                         
=> [2, 3, 4, 5, 6, 7, 8, 9]

メソッドの引数を省略

ターミナル

>> %w[A B C].map { |char| char.downcase }
=> ["a", "b", "c"]
>> %w[A B C].map(&:downcase)
=> ["a", "b", "c"]

ハッシュにキーと値を渡す

ターミナル

>> user = { name: "Michael Hartl", email: "michael@example.com" }
=> {:name=>"Michael Hartl", :email=>"michael@example.com"}

ハッシュの中のハッシュに値を渡す

ターミナル

>>  params[:user][:email]
=> "mhartl@example.com"

リテラルに変換する

ターミナル

>> puts :name            
name
>> puts :name.inspect    
:name
>> p :name             
:name

Stringクラス内部ではメソッドや属性を呼び出すときのselfを省略する

ターミナル

>> class Word < String             
>>   def palindrome?
>>     self == reverse        
>>   end
>> end

スペースの集まった空白はblankを指す

ターミナル

>> "      ".empty?
=> false
>> "      ".blank?
=> true

 属性に対応するアクセサを自動生成

example_user.rb

attr_accessor :name, :email

.newが実行されたときに呼び出されるインスタンス作成メソッド

example_user.rb

def initialize(attributes = {})
    @name  = attributes[:name]
    @email = attributes[:email]
end

第5章

様々な属性(第1引数)を付与し、リンク先(第2引数)に遷移する

app/views/static_pages/home.html.erb

<%= link_to image_tag("rails.svg", alt: "Rails logo", width: "200"),
                      "https://rubyonrails.org/" %>

画像をダウンロードする

app/views/static_pages/home.html.erb

curl -o app/assets/images/rails.svg -L https://cdn.learnenough.com/rails.svg

BootstrapとSassをインストール

ターミナル

bundle install

ファイル作成

ターミナル

touch app/assets/stylesheets/custom.scss

パーシャルを作成し、該当するレイアウトを呼び出す

app/views/layouts/application.html.erb

<%= render 'layouts/header' %>

〇〇_pathでアクションを呼べる

config/routes.rb

get  "/help",    to: "static_pages#help"

総合テストを作成

ターミナル

rails generate integration_test site_layout

コントローラ作成

ターミナル

rails generate controller Users new

1
1
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
1