個人的に忘れやすいことをメモ的な意味で書きます。
ActiveRecordクラス
テーブルから情報を取得するため位必要なメソッドを兼ね備えたクラス。
メソッド一例
メソッド 用途
●全てのデータを取得する
使用例)postテーブルに保存されているデータの全てを取得して@postsにインスタンス変数し、ビューファイルに使用できるようになる。
@post = Posts.all
↓複数のデータを表示しようとするとエラーが出る。
<%= @posts.content %>
<%= @posts.created_at %>```
↓eachメソッドを使って順番に処理させることで解決。
```<h1>トップページ</h1>
<% @posts.each do |post| %>
<%= post.content %>
<%= post.created_at %>
<% end %>```
●テーブルのレコードの内、ある一つのデータを取得する
使用例)1番目のレコードのみ取得
```@post = Post.find(1)```
●クラスのインスタンス(レコード)を生成する
```post.new```
●クラスのインスタンス(レコード)を保存する
```post.save```
#ヘルパーメソッド
ViewでHTMLタグを出現させたりテキストを加工するために予めソッドが用意されている。
●投稿ページなどにおけるフォームの実装
```<%= form_tag('/posts', method: :post) do %>
<input type="text" name="content">
<input type="submit" value="投稿する">
<% end %>```
●その他のパーツ
type="text" 1行テキストボックス
type="password" パスワード入力ボックス
type="checkbox" 複数選択可
type="radio" ラジオボタン(一つだけ選択)
type="submit" 送信ボタン
●リンクの実装
aタグの代わりに使用できる、リンクを仕込むためのヘルパーメソッド
```<%= link_to '新規投稿', '/posts/new' %>```
# ストロングパラメーターとプライベートメソッド
Railsではセキュリティ上の概念などから、ストロングパラメーターという技術を用いてデータを保存する。
●ストロングパラメーターとは
指定したキーを持つパラメーターのみを受け取るようにするもの。以下に記述することで特定のキーしか受け取れないようにする仕組みを構築する。
```def post_params
params.permit(:キー名, :キー名) # 受け取りたいキーを指定する
end```
●プライベートメソッド
クラス外から呼び出すことのできないメソッドで、ストロングパラメーターを記述したメソッドはprivate以下に記載して、プライベートメソッドとして扱う。
```private
def post_params
params.permit(:content)
end```
★プライベートメソッドのメリット
# 1.classの外部から呼ばれたら困るメソッドの隔離
メソッドの中には、classの外部から呼び出されてしまうとエラーを起こすメソッドも存在します。そのような事態を事前に防ぐ事ができる。
#2.可読性
classの外部から呼び出されるメソッドを探すときに、private以下の部分は目を通さなくて良くなります。また、繰り返し使用するメソッドもprivate以下に集約する事で、コードをシンプルにできる。