0
0

【Progate】Ruby on Rails 5 まとめ

Last updated at Posted at 2024-03-23

各コードの機能

ターミナル

コード 機能
rails new アプリ 入力したアプリ名と同じファイルを作成
rails server サーバーを起動
rails g controller コントローラ名 アクション名 コントローラとそれに対応したファイルを作成
rails g model テーブル名 カラム名:データ型(※テーブル名は単数系&頭大文字) マイグレーションとモデルを作成
rails g migration マイグレーションのみを作成(マイグレーションの中身は自分で作成する必要がある)
rails console コンソールを起動
quit コンソールを終了
File.write(ファイルの場所,ファイルの中身) 指定したファイルの場所にファイルの中身を記述する
bundle install Gemfileに記述したgemをインストールする
インスタンス名.save インスタンスをテーブルに保存
モデル名.first テーブルから一つのデータを取得
モデル名.all 全てのデータを取得する
モデル名.all[数値] 数値+1のidにあるデータを取得する
モデル名.find_by(カラム名:値) 特定の値を持ったカラムのデータを取得する
モデル名.order(カラム名:順序) カラム名を指定された順序にする
インスタンス名.destroy インスタンスをテーブルから削除
モデル名.where(カラム名:値) 複数の値を持ったカラムのデータを取得する

エディタ

ビュー

コード 機能
<%= yield %> 各ビューファイルを代入
link_to(文字,URL) 文字や画像にリンクを付与(※1)
<%= form_tag(URL) do%><% end %> フォームに入力されたデータをURLに送信する(※2)
<textarea name =“カラム名”>初期値</textarea> カラム名と初期値を指定した入力フォームができる
変数名.errors.full_messages エラーメッセージの配列が入っている
flash[:notice] 一度だけ格納されている文字列を表示させる変数
<input name=“カラム名” value=“初期値”> カラム名と初期値を指定した1行分の入力フォームができる

※1 postとgetの両方あり、postで扱いたい場合には、第三引数で{method: “post か get”}を指定する)
※2 画像を送信したい場合には、第三引数で{multipart: true})を指定する

コントローラ

コード 機能
@変数名 同じクラスの他のアクションやビューでも使える変数
redirect_to(/URL) 指定したURLに移動する
render(URL) 他のアクションで指定した@変数を保持したまま指定URLに移動する
session[: キーID] 代入した値はブラウザに保存される
before_action :共通化のアクション名, [only: [:適用するアクション名,...]] 適用するアクションの前に実行される共通化アクション(※1)

※1 applicationコントローラで共通化のアクションを作り、各コントローラで上記の実装をする

ルーティング

コード 機能
post/:id ”post/数値”をまとめたルート
get ルート名 データベースとsessionを変更しないルート
post ルート名 データベースとsessionを変更するルート

マイグレーション

コード 機能
add_column :テーブル名, :カラム名, :データ型 テーブルにカラムを追加
remove_column テーブルからカラムを削除

モデル

コード 機能
validates :検証するカラム名, {presence: true} 空を防ぐ
validates :検証するカラム名, {length: {maximum: 数値}} 文字数の最大数値を設定

ジェム

コード 機能
gem ‘bcrypt パスワードハッシュ化のためのジェム
has_secure_password パスワードをハッシュ化するメソッド(モデルに追加)
@変数名.authenticate(“文字列”) 変数のパスワードと文字列のパスワードが一致することを確認できる(コントローラで使用)

各ファイルのアドレス

ファイル アドレス
ビュー app/views/コントローラ名/アクション名.html.erb
共通のレイアウト app/views/layout/application.html.erb
コントローラ app/controllers/コントローラ名_controller.rb
共通のコントローラ app/controllers/application_controller.rb
ルーティング config/routes.rb
CSS app/asssets/stylesheets/コントローラ名scss
画像 public/ここに配置
マイグレーション db/migrate/日付_create_モデル名.rb
モデル app/models/モデル名.rb
ジェム Gemfile
0
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
0
0