5月1日

 

orderメソッド モデルが使用できる、ActiveRecordメソッド一つ

orderメソッドはテーブルから取得してきた複数のレコード情報を持つインスタンスの並び順を変更するメソッド

インスタンス = モデル名.order("並び替えの基準となるカラム名 並び順")

 

並び順 

 ASC (昇順)小さいものから大きいものになる。古いものから新しいものになる。

 DESC (降順)ASCの反対

 

〜複数ページで利用する表示の一部をまとめよう〜

 部分テンプレート 繰り返し要するコードを切り出し再利用する仕組み。

 1つのファイルを編集だけで済むメリットがある。

 

_〇〇.html.erbファイル

 

 部分テンプレートとして切り出すときに作成するファイル。

 テンプレート自体のファイル名は、命名規則としてアンダースコア_を先頭に記述する。

 

renderメソッドは部分テンプレートを呼び出す際に使用するメソッド

 

partialオプションとはrenderメソッドで使用できるオプション

該当する部分を部分テンプレートすることができる。

<% render partial: "sample" %>

 

localsオプションとはrenderメソッドで使用できるオプション。

部分テンプレート内でその変数を使えるようになる。

<% render partial: "sample", locals: { post: "hello!" } %>

 

 

4月24日(土)②

 

7つのアクションのうちのshow

 

show 詳細表示

before_action コントローラーで定義されたアクションが実行される前に共通の処理を行うことができる。

class コントローラ名 < ApplicationController
  before_action :処理させたいメソッド名

 

devise

  • deviseとはユーザー管理機能を簡単に実装するためのGemである。

 

rails g devise:installコマンド

追加したdeviseの「設定関連に使用するファイル」を自動で生成するコマンド

 

rails g deviseコマンド

deviseによるユーザー機能の対象を指定することで、モデルとマイグレーションの生成やルーティングの設定などをまとめて処理します。

rails g devise:viewsコマンド

deviseに用意されたビューファイルをコピーし、app/viewsの配下に配置してくれるコマンド

rails g devise:views

 

スネークケースとキャラメルケース

・スネークケースは単語の区切りをアンダースコアで表す。

・キャラメルケースは単語の区切りを大文字で表す。

 

maxlengthオプション

text_fieldにつけることができるオプション。入力できる最大文字数を指定できる。

<div class="field">
  <%= f.text_field :nickname, autofocus: true, maxlength: "6" %>
</div>

 

devise_parameter_sanitizerメソッド

deviseにおけるparamsのようなメソッド。deviseのUserモデルに関わる「ログイン」、新規登録などのリクエストからパラメーターを取得できる。

 

 

処理名 役割
:sign_in サインイン(ログイン)の処理を行うとき
:sign_up サインアップ(新規登録)の処理を行うとき
:account_update アカウント情報更新の処理を行うとき

 

user_signed_in?メソッド

Gemのdeviseを導入しているため使用できるメソッド

ログインをしているかどうか判断するときに使用する。

 

unless

ifと同様に、条件式の返り値で条件分岐して処理を実行するRuby構文。

if構文の反対であると理解する。

 

redirect_toメソッド

railsでダイレクト処理を行う際に使用するメソッド

例】redirect_to
1
redirect_to action: :リダイレクト先となるアクション名

 

 

exceptオプション

before_actionで使用できるオプション。

4月24日(土)

 

form_with メソッド

 

<%= form_with url: "/posts", method: :post, local: true do |form| %>
  <%# フォームの内部 %>
<% end %>

 

②model オプションを用いたメソッド

<%= form_with(model: @tweet, local: true) do |form| %>
  <%# フォームの内部 %>
<% end %

 

どちらも同様

 

こちらのmodelオプションを用いることによって上記①のurl先の指定とmethodでHTTPメソッドの入力が不要になる。

 

ストロングパラメーター

パスワード等の他の人から変更を受けないために指定したキーのみを受けるという制限をかけるもの意図しない更新を防ぐ。

 

params.require(:モデル名) 

 

permitメソッド

params.require (:モデル名).permit(:キー名, :キー名)

 

プライベートメソッド

クラス外から呼び出すことができないメソッド

メリット①

1. Classの外部から呼ばれたら困るメソッドを隔離

 

メリット②

2. 可読性

 

バリデーション

データを登録する際に、一定の制約をかけることをいう。

validates バリデーションを設定するときに使用するメソッド。

validates

validates :カラム名, バリデーションの種類

一例

validates :name, presence: true

PrefixとはルーティングのURI Patternに名前をつけて変数化したもの。

2021/4/20(火)

yieldメソッド

→レイアウトテンプレートに、各テンプレートファイルを展開するためのファイル。

 

stylesheet_link_tagメソッド

→読み込むCSSファイルを指定できるヘルパーメソッド

 

application.cssファイル

Railsにはじめから用意されている、CSSファイルをまとめるためのファイル

 

require_tree

→引数として与えられたディレクトリ以下のCSSファイルをアルファベット順にすべて読み込むという機能を持つ。

require_tree.  .はカレントディレクトリを表すもの

datebase.yml - rails アプリケーションのデータベースの設定ファイル

       configというディレクトリ内にある。

 

RDB(リレーショナル・データベース)

 表形式でデータを管理するデータベース。

 行を「レコード」、列を「カラム」と呼ぶ。

RDBMS(RDB・マネジメント・システム)

 リレーショナルデータベースを管理するシステム。rails newでアプリケーションを作成する際にオプションで -d オプション名 MYSQLというシステムがRDBMSに該当する。

 

MYSQL の特徴

 ・拡張機能が多い。

 ・小規模から大規模のデータの取り扱いが可能

 ・柔軟性が高い。

2021年4月17日

 

アウトプット

def sample(hoge)

  puts "私の名前は#{hoge}です。"

end

 

name = "田中"

sample(name)

にて出力すると、

 

私の名前は田中です。

という処理を行うことができる。

 

 

class Student

  initialize(last_name,first_name)

    @last_name = last_name

    @first_name = first_name

 

def introduce

    puts "私の名前は#{@last_name + " " + @first_name}です。"

  end

end

 

student = Student.new("山田","太郎")

Student.introduce

 

という出力を行う  私の名前は「山田 太郎」です。 という記述にすることができる。

2021年4月17日

 

アウトプット

def sample(hoge)

  puts "私の名前は#{hoge}です。"

end

 

name = "田中"

sample(name)

にて出力すると、

 

私の名前は田中です。

という処理を行うことができる。

 

 

class Student

  initialize(last_name,first_name)

    @last_name = last_name

    @first_name = first_name

 

def introduce

    puts "私の名前は#{@last_name + " " + @first_name}です。"

  end

end

 

student = Student.new("山田","太郎")

Student.introduce

 

という出力を行う  私の名前は「山田 太郎」です。 という記述にすることができる。