学習記録

アウトプット用に作りました

carrierwaveを使って画像アップロード機能を追加する

carrierwaveとは Railsにおける画像アップロード用ライブラリです。 Uploaderクラスを別に持つから、 モデルが異なる場合でも都度記載する必要がありません。 gemfileにgem carrierwaveを追加し、bundle installを行います。 carrierwaveの使用方法 まずアッ…

Fakerを使ってダミーデータを作る

Fakerとは ダミーデータを自動生成してくれるgemです。 gemfileにgem 'faker'を記載してbundle installを行い使えるようになります。 使い方 seeds.rbにUser(10件)とTask(20件)のダミーデータを用意します。 (db/seeds.rb) 10.times do User.create!(last_na…

アソシエーション

アソシエーション Railsで作成するモデルの間に関係性を定義したい場合、 アソシエーションという機能を使うことができます。 userモデルでは、 has_many :tasks, dependent: :destroy taskモデルでは、 belongs_to :user が定義されていないとアソシエーシ…

デコレーターの導入

デコレーターとは 既存のクラスに機能を付け加えたい場合や、 既存機能に少しだけ修飾を加えたい場合に使われるパターンです。 色々なモデルで同じようなメソッドを使いたいときに、 userモデルでもcommentモデルでも定義していたら手間です。 またモデルで…

flashメッセージを表示する

flashメッセージとは Webサービスにて何かの処理を行なった際、 それが正しく行われたかをユーザー側で確認できるよう、 メッセージで表示させるための機能です。 例えば、ログインが成功しましたよ、失敗しましたよ、 などのメッセージを表示することでユー…

i18nによる日本語化対応

i18nとは Railsではさまざまな言語に対応するために、このgemがデフォルトで導入されています。 gemを導入することで、gem内部の一般的なメッセージについての日本語での国際化設定ファイルを参照するようになります。 なのでconfig/locals/ja.ymlというファ…

sorceryを使ってログイン機能を実装する

sorceryとは Railsに認証機能を実装するためのライブラリです。 認証機能とは、システムへのログインやユーザの有効性確認を行うための機能のことを言います。 同じように認証機能を提供してくれているものとしてdeviseなどがあります。 sorceryの使い方 ま…

RailsでBootstrapを導入する

Bootstrapとは Railsにはデフォルトで特定のデザインを含んでいません。 そのため見栄えの良いアプリケーションを作るには、一から自分でデザインしなければいけません。 Bootstrapというフロントエンドワークを使えば、手軽に見栄えの良いページを作ること…

アセットパイプライン

アセットパイプラインとは JavaScript、CSS、画像のリソース(アセットとよぶ)を最小化または圧縮して効率よく扱うための仕組みです。 アセットパイプラインはsprockets-railsというgemによって提供される機能で、デフォルトで有効になっています。 ①高級言語…

マニフェストファイル

マニフェストファイルとは どのファイルを読み込むのかをまとめたファイルのことをいいます。 HTMLでは、そのページで必要となる読み込みファイルを、 application.html.erbファイル内のに記載します。 <head> <%= stylesheet_link_tag 'application', media: 'all</head>…

layoutファイル

layoutファイル アプリケーション全体で変わらないものを記述しておくファイルです。 変わるものは個別のファイルに記述し、 表示するときにはその二つのファイルを足し合わせて出力するというのがrailsの基本です。 通常このファイルは、app/views/layouts…

rails generateで生成されるファイルの設定

rails generateコマンド rails newコマンドで作成したrailsのアプリケーションの中に、 必要な関連ファイルを自動生成してくれるコマンドです。 このコマンドを実行した後に不要なファイルを一つずつ消去していくのは面倒なので、 最初から指定ファイルを自…

Active Recode(自分用メモ)

基礎編前の課題で、忘れていたこと、知らなかったことなどのまとめ。 複数レコードを一括削除したい場合は、destroy_byまたはdestroy_allを使える。 # Davidという名前のユーザーを検索してすべて削除 User.destroy_by(name: 'David') # 全ユーザーを削除 Us…

findとfind_by

find 各モデルをidを検索キーとしてデータを取得するメソッド。 id以外の条件で検索不可。 存在しないユーザーを指定すると、例外が発生する。 (ActiveRecord::RecordNotFound) User.find(1) find_by 各モデルをid以外で検索するメソッド。 idでも検索可能。…

authenticateメソッド

authenticateメソッドは、 has_secure_passwordメソッドをユーザーモデルで呼び出すだけで使えるようになるメソッド。 authetnticateメソッドはパスワードを引数として使う。 誤ったパスワードを渡されるとfalseを返す。 正しいパスワードを渡されるとtrueを…

パーシャル

パーシャルを使う目的は、viewの一部を別のファイルに切り出し、 同じ部分を持っているviewのコードを共通化してメンテナンスをしやすくする。 パーシャルファイルはファイル名の先頭にアンダースコアをつける。 例えばこのようなファイル名にする。_form.ht…

namespace

namespace namespaceを使うとURLを新しく指定して、新たに作ったアクションにリクエストが飛ぶようになる。 管理画面のルーティングを作るときに用いられる。 rails generate migration ファイル名を使ってadmin用のマイグレーションファイルを作る。 7つの…

rails generate

rails generateコマンドで生成されるファイルを把握していなかったので、簡単にまとめておく。 rails generate model User name:string Userモデルを作って、nameカラムを作成する 生成されるファイル * モデル * マイグレーション * テスト rails generate …

scope

繰り返し利用される絞り込み条件を読みやすくすることができる。 絞り込み条件とは クエリー(SQLを実行したときにデータベースに送る命令文)のメソッドを使って、データベースのデータを絞り込むときに使う。 (例) Userのidを降順にして5つデータを表示する…

renderとredirect_toの使い分け

render 別のアクションを経由せずに、直接ビューを表示する。 使用目的 : エラーなどで処理が正常に完了せず、元の画面に戻したいだけの時に使用する。 def create render :new # 表示するviewファイルを指定 end → 登録に失敗したら、新規登録画面を表示す…

HTTPメソッド

HTTPメソッドとは、ブラウザからアプリケーションにアクセスするときにサーバーに対して出されるお願いのことです。 HTTPメソッドにはたくさんの種類がありますが、特に使うGETとPOSTの違いが曖昧だったのでまとめていこうと思います。 HTTPメソッドのGETとP…

form_withについて

form_withメソッドとは 入力フォームを実装するためのヘルパーメソッドです。 form_withには、model:とurl:オプションがあります。 基本的にはmodel:オプションを使用します。 model:オプションを使うとき 関連するモデルがある場合に使います。 主に投稿フ…

Strong Parameters

Strong Parametersとは 重要な情報を悪意ある変更から守るために設定する仕組みです。 nameやemail、passwordなど他のユーザーに書き換えられ、更新されたら困るデータを守ります。 def create task = Task.new(task_params) end private def task_params pa…

attr_accessor

attr_accessorを理解する前に、インスタンス変数、ゲッター、セッターについてまとめます。 インスタンス変数 変数名の先頭に@をつけることで作ることができ、 同じオブジェクト内であれば、複数のメソッドをまたいで使うことができます。 またオブジェクト…

initializeメソッド

initializeメソッドとは オブジェクトが新しく作られるとき(newメソッドが呼び出されたとき)に自動で呼び出されるメソッドで、主にインスタンス変数の初期値を設定します。 class Hello def initialize(name) # インスタンス変数@nameに引数を代入 @name = n…

ARGVとは

例外処理の勉強をしているときに出てきたARGV。 なんとなくわかるけど、説明はできないと思ったのでまとめてみることにしました。 ARGV : 読み方(アーグブイ) 配列オブジェクト。 またRubyが用意する組み込み定数の一つです。 コマンドラインに入力したデ…

例外処理

想定外の問題が発生した時、Rubyはエラーメッセージを表示してプログラムを停止させます。 ええ。なんかエラー出た。。先に進めない。。。 そんな時に、これはエラーだよ!間違えてるよ!と教えてくれたらとっても親切ですよね。 そこで、、、わかりやすくエ…