【Rails】APIを作成してみる エラーハンドリング ( HTTPステータスコードについて)

概要 Railsを使用してAPIを作成したので、まとめ 初めてなので、間違っているところがあればご指摘いただけたら幸いです。 目標 404のエラーが発生した際の、エラーハンドリング処理を実装し、エラーレスポンスを返すようにする エラーハンドリングとは エラ…

【Rails】 jsonapi-serializerを使用して、APIを作成してみる (指定した記事のjsonを返す)

概要 Railsを使用してAPIを作成したので、まとめ 初めてなので、間違っているところがあればご指摘いただけたら幸いです。 目標 localhost:3000/api/v1/articles/{:id}にアクセスした時に、以下の形で記事のjson responseがかえるようにする 流れ Userモデル…

【Rails】 jsonapi-serializerを使用して、APIを作成してみる (記事一覧のjsonを返す)

概要 Railsを使用してAPIを作成したので、まとめ 初めてなので、間違っているところがあればご指摘いただけたら幸いです。 目標 localhost:3000/api/v1/articlesにアクセスした時に、以下の形で記事の一覧のjson responseが帰ってくるようにする { "data"=> …

moduleについて Rails

概要 moduleについて詳しくまとめたことがなかったのでまとめる Moduleとは Rubyには、クラス以外にも、モジュールという概念が存在する。 できること クラスと同じように定数やメソッドをまとめたり、名前空間を提供したりできる。 クラスとの違い ・モジュ…

serializerについて

概要 serializerについてまとめる serializeとは 様々な要素を組み合わせた複合的なデータや、コンピュータで実行中のプログラムがメインメモリ上に展開しているオブジェクトなどを、一定のデータ形式や変換規則に従って文字列やバイト列に変換し、保存した…

知らなかったGitコマンドについてまとめる

概要 Gitコマンドで知らなかったものについてまとめる 前提として 状態名 説明 Untracked Gitの追跡対象となっていない状態(新しく作成されたファイルなど) Unmodified 前回コミットされてから編集されていない状態 Modified 前回のコミットから編集されて…

【JS】まとめてみた

概要 JavaScriptについてまとめておく JSの役割 DOMをいじって画面を装飾する(ブラウザで動作する) DOMとは Document Object Modelの略 JSからHTMLの要素にアクセスするための仕組みで、ツリー構造になっている。 JavaScript HTML DOM この、DOMの仕組みのお…

【Node.js】とは何か?

概要 Node.jsやJavaScriptについてよく理解できていない部分があり、とても参考になるサイトを見つけたので、自分ようにまとめます。 参照 Node.jsとはなにか?なぜみんな使っているのか? JavaScriptについて 他のプログラミング言語との違いは? JavaScrip…

【ngrok】の起動方法 【シェル】の変更方法 について

概要 ngrokを起動しようとしたら、迷ったのでメモ:) 詰まった画面 ngrokのアプリをFinderからクリックして起動しようとすると[プロセスが完了しました]で終了してしまう。 試したこと To update your account to use zsh, please run `chsh -s /bin/zsh`. と…

【Rails】heroku アップグレードした際にDBを新しく作成する方法

概要 herokuをアップグレードした際にDBをアップグレードするということを知らず、エラー発生し詰んだのでまとめておきます。 前提 グレードはHobby Basicに変更しました。 発生していたエラー ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: …

[シェル変数] [環境変数] [カーネル] [OS] 等についての知識

概要 シェル シェル変数 環境変数 カーネル OS 等についての知識が乏しかったのでまとめてみる。 OSとは OSは、Operating System(オペレーティングシステム)を省略した言葉。 もしパソコンにOSが入っていなかったら・・・ ・電源を入れても画面に何も映し…

【Rails】について言葉でまとめてみた⑦[redis]・[ジョブ]・[rakeタスク]・[FatControllerの解消]・[form object]・[Json Serializer(fast_jsonapi)]・[GET, POST]・[HTTPステータス(404, 503など)]・[トランザクションとは?]

概要 言葉でまとめてみた⑦ [redis]・[ジョブ]・[rakeタスク]・[FatControllerの解消]・[form object]・[Json Serializer(fast_jsonapi)]・[GET, POST]・[HTTPステータス(404, 503など)]・[トランザクションとは?]について言葉で説明できるようにする 言葉…

【Rails】について言葉でまとめてみた⑥ [他人の掲示板を編集・削除しようとした際の制御]・[collectionルーティング]・[has_many through]・[Railsにおけるajax処理]・[data-remote="true"によるajax処理]・[debuggerを使ったブラウザの検証ツールによるJavascriptコードのデバッグ]・[単一resource(ルーティング)]・[モデルに紐づかないコントローラの実装]・[sorceryのパスワードリセットモジュール]・[gem conf

概要 言葉でまとめてみた⑥ [他人の掲示板を編集・削除しようとした際の制御]・[collectionルーティング]・[has_many through]・[Railsにおけるajax処理]・[data-remote="true"によるajax処理]・[debuggerを使ったブラウザの検証ツールによるJavascriptコード…

【Rails】について言葉でまとめてみた⑤ [マイグレーション全般]・[ロールバック]・[バリデーションエラー発生時の挙動]・[scope]・[resoursesのネスト]・[application.html.erbのyieldって何をしているのか?]

概要 言葉でまとめてみた⑤ [マイグレーション全般]・[ロールバック]・[バリデーションエラー発生時の挙動]・[scope]・[resoursesのネスト]・[application.html.erbのyieldって何をしているのか?]について言葉で説明できるようにする 言葉でまとめてみた①は…

【Rails】について言葉でまとめてみた④ [ルーティング(REST)]・[includes(N+1問題)]・[フォームヘルパー(form_with)]・[ストロングパラメータ]・[params]・[renderとredirect_toの違い]

概要 言葉でまとめてみた④ [ルーティング(REST)]・[includes(N+1問題)]・[フォームヘルパー(form_with)]・[ストロングパラメータ]・[params]・[renderとredirect_toの違い]について言葉で説明できるようにする 言葉でまとめてみた①はこちら 言葉でまとめて…

【Rails】について言葉でまとめてみた③ [デバッグ]・[i18n]・[decorator]・[アソシエーション]・[dependent: :destroy]・[DB側の制約(not null制約、外部キー制約)]

概要 言葉でまとめてみた③ [デバッグ]・[i18n]・[decorator]・[アソシエーション]・[dependent: :destroy]・[DB側の制約(not null制約、外部キー制約)]について言葉で説明できるようにする 言葉でまとめてみた①はこちら 言葉でまとめてみた②はこちら [デバッ…

【Rails】について言葉でまとめてみた② [処理の全体象]・[セッション/クッキー]・[バリテーション]

概要 言葉でまとめてみた② [処理の全体象]・[セッション/クッキー]・[バリテーション]について言葉で説明できるようにする 言葉でまとめてみた①はこちら [処理の全体象] Railsアプリで、Boardの一覧画面を見るために、ブラウザのアドレスバーにURLを打ち込ん…

【Rails】について言葉でまとめてみた① [各ディレクトリ]

概要 railsアプリのディレクトリについてまとめる app config db について app MVC、アセットファイル、helperファイル config ルーティング、いろんな設定ファイル、localesディレクトリ下にja.yml db マイグレーションファイル、seedファイル、DBを作成す…

【Rails】サイドメニューのアクティブ・非アクティブに対応させる

概要 サイドメニューをアクティブ・非アクティブに対応させたい。 イメージはこのよう↓に対応させたい。 掲示板一覧を選択したときは ユーザー一覧を選択したときは そもそもアクティブにするにはどうするのか class: "nav-link active" のようにclassにacti…

【Rails】ransack gem の Custom-Predicates を使用して日時検索をできるようにする

概要 ransack gemのCustom-Predicatesを使用して日時検索できるようにする イメージはこんな感じ ransackで提供されている検索方法predicatesとは ransackで提供されている検索方法はpredicatesと呼ばれる。 eq(equals) matches lt(less than) lteq(less tha…

【Rails】enum_helpを使用したプルダウンのセレクトボックス

概要 enum_helpを使用して、セレクトボックスを作成する enum_help gem 解答をみても内容を納得できなかったので、分解して理解する 回答: <%= f.select :role_eq, User.roles_i18n.invert.map{|key, value| [key, User.roles[value]]}, { include_blank: t…

【Rails】config について

概要 configについてよくわかっていなかったのでまとめる。 configディレクトリとは railsアプリケーションの設定に関するファイルを保存するディレクトリ routes.rbやdatabase.ymlもこの中に作成される application.rb configディレクトリ直下に存在する。 …

【Rails】Sorceryを使用してパスワードの再設定ができるようにする

概要 Sorcery gem を使用してパスワードを再設定できるように設定する。 前提 ・sorceryのreset_passwordモジュールを使用する ・letter_opener_webを使用し、開発環境でメールの確認をできるようにする ・host情報はconfig gemを使用 目標 reset_passwordサ…

【Rails】[&.]について

&.について &.はメソッドの実行対象のオブジェクトがnilだった場合を考慮した記法である。 例外を発生せず、nilを返したい時に使用する。 【Rails】「&.」あ!それみたことある!!(意味は知らない)

【Rails】runsack 検索 [search_form_for]をパーシャルで使用する

概要 ransack gem を使用して検索機能を作成しようとしたところ、パーシャルにするところで詰んだのでメモ:) ransack gem rasack gem パーシャルにして汎用性を高めて使用するには 条件 ・Postモデルのtitleカラムとbodyカラムを検索したい views/posts/_sea…

【Rails】 エンコードして、文字を含んだ検索URLを作成したい【URI.encode_www_form_component】

概要 Twitterから取得した内容をDBに保存した。 保存した複数のデータに関連したGoogle検索ページに遷移するボタンを作成したい。 条件 brand = "Supreme / Yohji Yamamoto®" price = "¥6,600-" item = "New Era Beanie Black" この3つを含む検索画面に遷移…

【Rails】 rakeタスクをherokuのschedulerで定期実行してみた! 【2分30秒に1回】

rakeタスクをherokuで定期実行させたい ポートフォリオでwebアプリを作成中にwhenever gemを使用して定期実行をしていたが、herokuではサポートされていないのでアドオンのHeroku Schedulerを使用してみる。 前提 herokuにデプロイ済み rakeタスクを作成する…

【Rails】 RSpec Twitter API モックを作成してみた

概要 Twitter APIを使用したメソッドのモックを作成したい。 モックとは モックとはざっくりいうと 「本物のふりをするニセモノのプログラム」 のことです。 何らかの理由で本物のプログラムが使えない、もしくは使わない方がよいケースでモックが使われます…

【Rails】 「link_to」と「image_tag」を使用して画像にリンクを持たせる 「link_to do」 使い方

概要 link_to の使い方で知らなかった方法があったので記録する link_to 基本的な使い方 link_to(リンクテキスト, パス [, オプション, HTML属性 or イベント属性]) link_to | Railsドキュメント ex) link_to "Top", "root_path"(URLでもok) オプション ・me…

【Rails】 render パーシャル locals collection asについてのメモ

概要 ・パーシャルではインスタンス変数を使用してはいけないのはなぜか ・「locals」「collection」でローカル変数にしてパーシャルに渡す方法 ・「as」オプション の使い方 パーシャルではインスタンス変数を使用してはいけないのはなぜか 結論 部分テンプ…