⭐︎RSpec

RSpecの復習 内容 今回はRSpec編で自分の理解が浅い部分を復習していきます。 FactoryBotの設定 spec/rails_helper.rb RSpec.configure do |config| config.include FactoryBot::Syntax::Methods end config.include FactoryBot::Syntax::Methodsをhelperに…

⭐️[管理画面] 掲示板/ユーザのCRUD機能の作成

概要 管理画面に、掲示板のCRUD機能を作成してください。 管理画面に、ユーザーのCRUD機能を作成してください。 手順 ・今回の課題では、今までの課題で使ったことがある機能もあったので、 この課題で新しく出てきた機能で、自分の理解の薄い内容のみアウト…

⭐️管理画面へのログイン機能、管理画面トップページの作成

概要 管理画面へのログイン機能を実装。 管理画面のトップページを仮で作成。 手順 1 . AdminLTE version3をインストール 2 . マニフェストファイル設定 3 . 管理者用コントローラー設定 4 . Userモデルに管理者判定用カラム追加 5 . ルーティング設定 6 . …

⭐️パスワードリセット機能の実装

手順 1 . パスワードをリセットするための申請 2 . メールを受信してリンクにアクセス 3 . パスワードを変更 sorceryのreset_passwordモジュールを使用 ・sorceryの中のモジュールであるreset_passwordを導入 $ rails g sorcery:install reset_password --on…

⭐️掲示板のページネーション

概要 掲示板とブックマーク一覧画面にページネーションを実装 ページネーションにはkaminariを使用し、1ページあたり20件の掲示板を表示する。 その際、設定値はコントローラに記載するのではなく専用のファイルに記載 ページネーションにはBootstrap4のスタ…

⭐️プロフィール編集機能の実装

ユーザーのプロフィール編集機能を実装 手順 1 . プロフィールコントローラーを作成 2 . ルーティングの設定 3 . アバター画像のカラムを追加 4 . Viewの表示 1 . プロフィールコントローラーを作成 ・rails g controller profiles でプロフィールコントロー…

⭐️掲示板の検索機能を実装

ransackを用いて掲示板の検索機能を実装 ・検索時には、検索フォームに入力された文言が「掲示板のタイトルor本文」に含まれている掲示板のみを表示。 ・ブックマーク一覧のページで検索した場合は「ブックマークした掲示板の中から」検索条件に合致したもの…

⭐️コメント投稿、削除機能のajax化

前回に続き、ajax化 今回はコメント投稿、削除機能をajax化していきます! (コメント編集機能も実装しました) 手順 1 . コメントコントローラを修正 2 . コメント作成、削除処理をajax化 3 . コメント作成、削除時の動的レンダリング処理を追加 1 . コメン…

⭐️ブックマークボタンのajax化

◉Ajaxとは Ajaxとは、Webブラウザ上で非同期通信を行い、ページ全体の再読み込み無しにページを更新する方法のことです。 同期通信 同期通信では、クライアントはwebページ全体の情報(HTMLとそれに紐づくcss,js,imageなどのアセット)をサーバーから受け取っ…

⭐️ブックマーク機能の追加

◉モデルのアソシエーション uniqunessヘルパーのscopeオプションにboard_idを指定することで、 各掲示板(board_id)別にユーザー(user_id)との関係性を一意にすることができる validates :user_id, uniqueness: { scope: :board_id } この記載によって、 「1…

⭐️中間テスト アウトプット

・git clone git clone クローンしたいurlでclone。 cloneしたらcdコマンドでclone先のディレクトリに移動して作業開始。 ・bundle exec rspec specでバグの内容を1つずつ確認しながらバグを修正していく。 ちなみに今回のバグ内容は下記。 rspec ./spec/sys…

⭐️掲示板の編集、削除機能の実装

・Userモデルに記載していた def own?(object) id == object.user_id end を利用して、自分が作成した掲示板のみ、編集、削除ボタンを表示させるように実装。 ・app/views/boards/show ・app/views/boards/_board.html.erb ※重要 boards_controller.rb # Bad…

⭐️三項演算子について補足

・解答例ではapplication_helper.rbにて、 page_title.empty? ? base_title : page_title + " | " + base_title 上記のように条件式(.empty?) ? trueの処理 : falseの処理と言う記載を使って1行で済ませている。

⭐️タイトルを動的に出力する

・動的に出力とは? 「状況に合わせて選択できたりする柔軟性」 🟢実装方法 1 . app/views/layouts/application.html.erbのheadタグ内にyield文を記載。 <title><%= page_title(yield(:title)) %></title> 2 . app/helpers/application_helper.rbでpege_titleメソッドを定義。…

⭐️JavascriptのAmbiguous matchエラー

コメント一覧の幅が広くなってしまっていたエラーについて 上記を検証してみた結果、 Ambiguous match, found 2 elements matching visible css "#js-table-comment" ☝️要素(idやclassなど)が重複しているため起きたエラーが発生し、 見本の成果物と自身のHT…

⭐️掲示板の画像アップロード機能

・デフォルト画像の設定。 ・uploaders/board_image_uploder.rb def default_url 'sample.jpg' end

⭐️フォーム入力時エラー情報を個別表示の確認ポイント

・エラーメッセージ表示部分をformのテンプレートに記載せず、専用のパーシャルが作られていること。 上記、エラーメッセージ表示用にshared配下に_error_messages.html.erbを作成。 <% if object.errors.any? %> <div class="alert alert-danger"> <ul class="mb-0"> <% object.errors.full_messages.each do </ul></div>…

⭐️掲示板作成機能の確認ポイント

・モデルに```has_many :boards``` を設定することで、userオブジェクトで```boards```というメソッドが使えるようになる。 ```@board = current_user.boards.build(board_params)``` ```current_user.boards.new``` と実行することで、 user_idを登録したbo…

⭐️掲示板の一覧機能の作成

・gem fakerを使うことによって、簡単にダミーデータを作る事ができ、開発する際は事前にダミーデータを使ってアプリケーションの動作を確認する事が一般的だそうなので、今後fakerのいろんなデータを使ってポートフォリオを作る際に生かしていきたい! ・今…

⭐️フラッシュメッセージの設定の確認ポイント

・application_controller.rbに以下の設定を追加すると、 デフォルトのalertとnotice以外で、Bootstrapに用意されているスタイルのフラッシュを定義できる。 add_flash_types :success, :info, :warning, :danger https://api.rubyonrails.org/classes/Actio…

⭐️i18nによる日本語化対応の確認ポイント

・gem 'rails-i18n'を導入することで、gem内部の下記の一般的なメッセージについての日本語での国際化設定ファイルを参照するようになる。 https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml ・Modelに紐付くform_withのlabelでは、…

⭐️sorceryを使用して、ユーザー機能を作成しようの確認ポイント

・ルーティングで resources :リソース名, only:[アクション名] で必要なアクションを指定する事が出来る。 ・モデルのValidationで設定した項目について、同じ制約をデータベースに対しても設定するのがセキュリティ上望ましい。 例) uniqueness: trueを付…

⭐️Gemを使ってみよう (Bootstrap)の確認ポイント

・gemの記載はアルファベット順にした方が良い! ・公式のgemを検索するときはこちら https://rubygems.org/ ・解説から、、、 gem 'font-awesome-rails'では、font-awesome5系に対応していないので gem 'font-awesome-sass'を使用する必要があります。 とあ…

⭐️cssをscssに変更する

◉application.cssをapplication.scssに変更し、application.scssからtop.scssを読み込む設定をしてください。 ・app/assets/stylesheets/application.cssのapplication.cssはapplication.scssに直接ファイル名を変更するだけでscssに切り替わる。 @import '…

⭐️ rails generate実行時に要らないファイルを生成しない方法

config.generators do |g| g. g. #g.作りたくないファイル名 false ... #ルーティングの場合はg.skip_routes trueなら、routes.rb変更せず end ◉bundle execコマンド ・bundle execをつけないと、Gemfile.lockに基づかずにgemのバージョンが決定される ・bun…

⭐️Rails知識チェックテストアウトプット

◉findメソッド ・主キーに対応するレコードを取り出す ・主キーを複数指定することも可能 ・主キーが1つでも見つからない場合 ActiveRecord::RecordNotFound例外が発生する 例 https://gyazo.com/abaabd5d25e310e90852b16c0fe6b23b ◉ストロングパラメーター…

⭐️CRUD作成

⭐︎感嘆符とは ・!(エクスクラメーションマーク) これをつけることで処理を実行しレコードの作成、保存に失敗したときにActiveRecord::RecordNotFoundエラーを発生させることができる。 つまり!をつけることにより、例外を発生させることができる。 ・!をつけ…

⭐️CRUD作成

・PostにCommentを作成できるようにしてください。 ・PostとCommentが1対多の関係になるようにアソシエーションを設定してください。 ↑commentコントローラーとモデルを作成。 $ rails g controller comments $ rails g model Comment body:string user:refe…