■
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でダイレクト処理を行う際に使用するメソッド
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月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
という出力を行う 私の名前は「山田 太郎」です。 という記述にすることができる。