第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