2021-01-01から1年間の記事一覧

コメントアウト一覧【メモ】

はじめに 自分が使っている言語のコメントアウトの方法のメモ html css /* コメントアウト */ javascript 一行の場合 // コメントアウト **複数行の場合 /* コメントアウト コメントアウト */ ruby 1行の場合 # コメントアウト 複数行の場合 =begin コメン…

railsでリロードしないとjQueryが動かない時の対処法

はじめに railsでjQueryを使ってタブメニューを実装した際に、リロードしないとjQueryが動かない現象が起きたのでその対処法について。 原因 原因はrailsにデフォルトでインストールされているturbolinksというgemです。 このgemはjavascriptなどの変換等を…

jQueryを使ってタブメニューを作る

はじめに jQueyを使ってタブメニューを作る方法について HTML まずはhtmlを下記のように記述します。 <ul class="tab-title"> <li class="tab tab-active">タブタイトル1</li> <li class="tab">タブタイトル2</li> <li class="tab">タブタイトル3</li> </ul> <div class="tab-contents"> <div class="tab-body body-active"> <p>コンテンツ1</p> </div> <div class="tab-body"> <p>コンテンツ2</p></div></div>

railsで長い文章の最初の部分だけを表示する方法【truncate】

はじめに 掲示板のようなアプリの一覧画面などで、本文の最初の部分だけを表示させたい時の方法についてご紹介します。 こんな感じにするやつ↓ 掲示板のようなアプリの一覧画面などで、 本文の最初の部分だけを表示させたい時の方法について ご紹介します。…

railsでtextareaで入力した改行や空白をビューに反映させる方法【safe_join】

はじめに railsでtextareaを使って比較的長い文章を入力してもらったとき、 それをビューで表示しようとすると、改行も空白も無視されてすごく読みづらくなってしまったので、 その対処法についてご紹介します。 問題点 例えば、下記のようなtextareaがあっ…

【bootstrap5のエラー】Module not found: Error: Can't resolve '@popperjs/core' in.....

はじめに rails6系にwebpackerを使って、bootstrap5をインストールして使おうとしたときにclassで指定したデザインが反映されなかったので、 サーバーのログを確認してみたところ、下記のようなエラーが出ていました。 Module not found: Error: Can't resol…

rails6にbootstrapを導入する方法

はじめに Rails6系からは「yarn + webpacker」でBootstrapを導入するのが標準のようなので、こちらの方法で導入していいきます。 設定方法 まずはwebpackerをインストールします。 $ rails webpacker:install ... Webpacker successfully installed 続いて、…

【git/github】ローカルとリモートのブランチ名を変更する方法

はじめに ローカルとリモートのブランチ名を変更する方法について ローカルのブランチ名の変更 $ git branch -m <既存のブランチ名> <変更後のブランチ名> # 変更したいブランチ名にいる場合は下記でもOK $ git branch -m <変更後のブランチ名> リモートのブ…

ターミナルやFinderで隠しファイルを表示する方法【メモ】

ターミナルで隠しファイルも含めて表示する方法 該当のディレクトリに移動してから下記コマンドを実行。 $ ls -a finderで隠しファイルを表示する方法 下記ショートカットキーで、表示・非表示を変更できる。 command + shift + . (コマンド + シフト + ピリ…

【rails】mysql2をインストール時に遭遇したエラー

はじめに railsでgemmysql2をインストール時に遭遇したエラーの解決法。 エラー遭遇 railsでbundle installを実行したときに下記エラーに遭遇。 Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/name/worksp…

gitコマンド【メモ】

はじめに gitコマンドのメモ 指定のファイルをステージングエリアから外したい時。 (間違えてgit add -Aとかしてしまったとき) $ git reset <対象のファイル> 上記のコマンドでステージングエリアから対象のファイルを外すことができる。 いらないファイルま…

Punditを使ってユーザーの権限を管理する

はじめに PunditというGemを使ってユーザーの権限を管理する方法について。 前提 ユーザーの種類は、管理者(admin)、編集者(editor)、ライター(writer)の3種類があります。 そして、記事(article)を作成、更新、削除する際には、管理者か編集者でないとでき…

form objectを使って複数のActiveRecordを保存する【rails】

はじめに form objectを使って、一度に複数のActiveRecordを保存する方法について form objectとは form objectとはrailsのデザインパターンの一つで、もともとはバリデーションなどをformにまとめて、 複数のモデルから実行できるようにすることでコードを…

Gemの'whenever'を使ってcronをセットする方法【rails】

はじめに wheneverというGemを使ってcronをセットする方法について 設定方法 まずwheneverというGemをインストールします。 gem 'whenever', require: false $ bundle install 続いて、下記コマンドで設定ファイルを作成します。 $ wheneverize . するとconf…

rakeタスクを設定する【rails】

はじめに rakeタスクはアプリケーションを起動せずに、ターミナルなどから行いたい処理を実行できます。 rakeタスクの設定方法 まず、rakeタスクの処理を設定するためのファイルを作成します。 $ rails g task <タスクの名前> $ rails g task update_article…

gretelを使ってパンくずリストを作成する方法【rails】

はじめに railsアプリにgretelというGemを使ってパンくずリストを作成する方法について 設定方法 まずはGemをインストールします。 gem 'gretel' $ bundle install 続いてgretelをインストールします。 $ rails g gretel:install 上記のコマンドを実行すると…

reset_passwordモジュールを使ってパスワードリセット機能を実装【sorcery】

はじめに sorceryのreset_passwordモジュールを使って、パスワードリセット機能を実装します。 設定方法 まずは、sorceryのパスワードリセットモジュールを導入します。 $ rails g sorcery:install reset_password --only-submodules パスワードリセットに関…

ransackを使って検索機能を実装する【rails】

はじめに railsアプリにransackを導入して検索機能を実装する方法について 設定方法 まずはransackというGemをインストールします。 gem 'ransack' 今回は掲示板一覧ページに、タイトルと本文を部分一致検索できるような検索機能を作ります。 コントローラを…

【rails】掲示板にページネーションを実装

はじめに 掲示板にページネーションを実装する方法について 設定方法 まずはkaminariというGemをインストールします。 gem 'kaminari' $ bundle install 下記のコマンドで`kaminari`の設定ファイルを生成します。 $ rails g kaminari:config デフォルトでは2…

【rails】掲示板の編集・削除機能のポイント

はじめに 掲示板の編集・削除機能について 掲示板の編集・削除機能のポイント edit,update,destroyアクションでは、boardを取得するときには下記のようにcurrent_userを使う。 @board = current_user.boards.find(params[:id]) current_userと関連を使うこと…

content_forを使ってタイトルを動的に出力する【rails】

はじめに railsアプリでcontent_forを使ってタイトルを動的に出力する方法について タイトルを動的に出力する まず、ヘルパーに下記のメソッドを定義します。 module ApplicationHelper def pages_title(page_title = '') base_title = 'BOARD APP' page_tit…

【rails】ルーティングをネストしてshallowオプションをつける

はじめに railsでルーティングを作成する時、ネストしたあと簡略化するためにshallowオプションをつける 設定方法 postモデルとcommentモデルが1対多数の関係にあり、 わかりやすくするためにルーティングをネストする場合。 resources :board, only: %i[ind…

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

はじめに railsアプリにcarrierwaveを使って画像アップロード機能を追加する方法について 設定方法 まず、Gemfileにcarrierwaveを記載して、bundle installします。 gem 'carrierwave' 続いて、下記コマンドでアップローダーを生成。 $ rails g uploader <カ…

railsのタイムゾーンを日本時間に変更する

はじめに railsアプリのタイムゾーンの設定を日本時間に変更する方法について 設定方法 config/application.rbファイルを以下のように変更します。 module RunteqNormal class Application < Rails::Application config.time_zone = 'Tokyo' # アプリのデフ…

railsのn+1問題をincludesで対策

はじめに railsアプリケーションで起こる、n+1問題をincludesを使って対策する方法について n+1問題とは n+1問題とは、1回のアクセスでいいのに何回もデータベースにアクセスしてしまい、 それによってページの読み込み速度の低下などにつながってしまうこと…

Fakerを使ってseeds.rbファイルにテストデータを定義する

はじめに Fakerを使ってデータを作成する方法について seeds.rbは、アプリケーションの挙動などを確認するために必要なテストデータを定義しておくファイルです。 rails db:seedを実行することで、そのファイルに定義しているテストデータを一気に生成できま…

railsにdecoratorを導入して使う

はじめに railsにdecoratorを導入して使う方法について decoratorの設定方法 デコレーターとは、主にモデルに関連するビューのロジックをおいておくための補助機能のようなものです。 ビューに直接メソッドを書いたりモデルに書いたりすると、コードが肥大化…

【rails】フラッシュメッセージの設定

はじめに フラッシュメッセージの設定について フラッシュメッセージの設定 Bootstrapに用意されているスタイルのフラッシュ一覧 :alert, :notice ※デフォルト :success, :info, :warning, :danger applicationコントローラに下記のadd_flash_typesを定義す…

railsにi18nを導入して日本語化対応にする

はじめに rails-i18nというgemを導入してアプリケーションを日本語対応にする方法について i18nを導入する方法 まずはGemをインストールします。 gem 'rails-i18n' $ bundle install このGemをインストールすることで、エラーメッセージや一般的な言葉などに…

railsにsoeceryを導入してログイン機能を実装する

はじめに soeceryを導入してログイン機能を実装する方法について soeceryの導入方法 gem 'sorcery' まずはGemfileに上記のような記載をしてインストールします。 $ bundle install $ rails g sorcery:install Userモデルやマイグレーションファイルが作成さ…