Rails

読みやすい条件の書き方にする

ビューで 'Loading...' という文言を表示させる条件を、以下のように書いてしまっておりました。 - unless (@menus.include?(@menus_last) || @menus.length == 0) .page-load-status .infinite-scroll-request | Loading... 自分でもこのunless文を書くにあ…

コントローラを分けるタイミング

本日、あるアクションを実装した部分について、別のコントローラに分ける方が良いというアドバイスを頂きました。 具体的には別のモデルの処理であるにも関わらず、1つのコントローラの中で実装してしまっておりました。 その際に参考文献として以下のリン…

postgresqlのセッションを切断

テストが実行できなくなってしまい、焦ることがありました。 ターミナル再起動しても相変わらずテストが実行されないままでした。 rake db:resetしようと試みてもエラーでリセットできませんでした。 しかし、ログをたどっていったところ、どうやらポスグレ…

capybaraで取得した要素の中身を確認する

テストが通らない原因を探るため、binding.pryを仕込んでデバッグをしておりました。 止まってくれたところで、 find(‘#client_check_by_id’) とすれば、その要素を取得は出来るものの、その中身を見たい!と思い、そのやり方を調べてみました。 [1] pry(#<RSpec::ExampleGroups::Nested::Nested_2>)></rspec::examplegroups::nested::nested_2>…

ポスグレとGP Commanderを接続する

起こった問題 PG Commanderというポスグレを可視化してくれるアプリを使いたかったのですが、ある日突然、自動で接続してくれなくなってしまっておりました。 自分で各項目を入力し接続を試みたのですが、上手くいかず困っておりました。。。 解決法 Portを…

Heroku本番DBの内容をローカルに持ってくる

Herokuの本番DBの内容をローカルに持ってくる方法を教えていただきました!! これは便利!!と感動したくので書き留めておきます。 以下のように、 heroku pg:pull herokuのDB名 ローカルDB名 --app アプリ名 とすると取得できます。 $ heroku pg:pull hero…

テストDBだけリセットしたい(postgresql)

テストデータベースだけリセットしたい!と思うことがありました。 調べてみたところ、以下の手順でテストデータベースをリセットできるようでした! ①データベースをtestに切り替える $ bin/rails db:environment:set RAILS_ENV=test ②データベースを消す $…

意味のあるテストデータの作成

FactoryBotを使ったデータ作成について基礎を理解したいと思うことが多々ありました。 Everyday Rails Rspec 第4章、「意味のあるテストデータの作成」についてまとめる機会を頂いたので、こちらに下書きを書いていきたいと思います! github.com 内容 ・フ…

rakeタスクを作る

menuテーブルが持っていたimageカラムの値を、menus_imagesテーブルのimageカラムに移すrakeタスクを作りました。 rakeタスクは初めて作ったので、手順を書き留めておきます。 タスクを生成する 以下のコマンドを打つと、タスクがlib/tasks配下に生成されま…

Railsdmへ行った!!!

今日はRailsdmへ行ってきました!!! railsdm.github.io とっても楽しかったです!!! もし「初心者だから理解できなそう、楽しめるか不安」という人がいたら、「理解できてなくてもすっごく楽しいよ!!」と伝えたいですw ただ残念なことにRailsdmは今回…

FactoryBotでtraitを使ってアソシエーション先のデータも作る

FactoryBotでアソシエーションが絡んだデータの事が今ひとつ理解できておりませんw 今日はtraitを使ってアソシエーション先のテストデータも作るということを覚えました。 そのやり方についてです。 ファクトリーを設定 通常のFactoryBotを用いたデータ生成…

文字列取得してDate型に変換して整形する(javascript)

datepickerの{format: 'yyyy/mm/dd'}オプションを使って、日付の表示を整形している部分があったのですが、検索実行したりリロードしたりすると、'00:00:00 +0900'という余分な部分が表示されてしまっておりました。 直したいと思い、まずtext_fieldに対して…

ネストした配列を平坦化

以下のように、whereで取得したレコードの配列をmapメソッドでアソシエーション先(1対多の多)のレコードの配列に変換したところ、配列の中に配列が入っている状態になってしまいました。 Hoge.where(name: argment).map{|r|r.fugas} その後処理を続けるため…

ransackを使った日付検索で指定した日付の前日までのデータしか取得できないのを修正

問題 ransackで oooo/oo/oo から xxxx/xx/xx までというふうに日付検索ができるようにしていたのですが、 そのままだと xxxx/xx/xx の部分の時間が00:00:00となってしまう事で、指定した日付の前日までのデータしか取得できませんでした。 2019-03-01から201…

rescue_fromは下に書いたものから評価される

エラーページ をrescue_fromを使って以下のように設定しておりました。 class Foo::BarController < ApplicationController 略 rescue_from ActiveRecord::RecordNotFound, with: :render_404 rescue_from ActionController::RoutingError, with: :render_40…

クエリパラメータを次のアクションへ渡す

現在のアクションで持っているクエリパラメータをそのまま次のアクションに渡そうと思ったのですが、少し気をつけないと次のアクションへ渡せなかったので、その方法を書き留めておきます。 エラー内容 次のアクションにも渡したいクエリパラメータがある時…

無限スクロール実装

Infinite Scrollというライブラリを使って無限スクロールを実装しました。 その際のやり方について書き留めておきます。 以下はInfinite Scrollのリンクです! infinite-scroll.com 実装にあたってこちらの記事を参考にさせていただきました。 qiita.com Inf…

kaminariでundefined method `page' for #<Array:0x000xxxxxx>と出た

Kaminariを使用したページネーションを作ろうとしており、通常通り実装していたら、以下のようなエラーが出てしまいました。。。 NoMethodError - undefined method `page' for #<Array:0x000xxxxxx> kaminariの使い方は間違っていないはず!何故?!と思い調べてみたら無事解決</array:0x000xxxxxx>…

ApplaudHer Event featuring with Rails Girls Tokyoへ参加した

本日はApplaudHer Event featuring with Rails Girls Tokyoというイベントへ参加してまいりました! 以下はそのイベントのリンクです! connpass.com このイベントはいろんな国籍の方々が参加されており、英語が飛び交う会でした。 また、普段から大変お世話…

徳丸本輪読会(セッション管理編)へ行った

今日は徳丸本の輪読会へ参加させていただきました! 難しくて話についていけないくなる事も多々ありましたが、途中途中で理解度確認&解説を入れてくれるおかげでセッション管理について理解が深まりました!! 以下、本日の内容のざっっっくりしたメモです(…

yarnでインストールされているライブラリをrequireする際の書き方

すでにyarnでインストールされているjsライブラリを使いたかったのですが、 「jsファイルでrequireしなきゃいけないのだろうけど、どう指定してrequireすればいいんだろう。。。」となりました。 なんとか上手くいったので方法を書いておきます。 実例 アプ…

ransackで数字の1をパラメータで渡すとエラーが出た

ransackを使った検索フォームを作っていたのですが、数字の1をパラメータとして送る際、エラーが出てしまう問題にぶつかりました。 その解決方法について書き留めておこうと思います。 エラー内容 ransackを使って作成した検索フォームで、数値を入力しても…

Dockerでbinding.pryをする

binding.pryを使いたくなったのですが、Dockerだとターミナルにpryのコンソールが出てくれません。。。 そこでどうすればいいか調べ、うまく行ったのでその方法をメモしておこうと思います! 手順 ①処理を止めたい場所にbinding.pryをかく これは普通の時と…

よちよち.rbへ行った

本日よちよち.rbへ参加してまいりました! 今回は伊藤淳一さんがゲストとしてきてくださっており、参加者の質問に答えてくれるというコンテンツがありました!! 参加者自己紹介では、参加者のみなさんが伊藤さんを知ったきっかけを話しました! 自分は以下…

TokyoGirlsrbに参加してきた!!

本日はTokyoGirlsrbというイベントに参加してきました!! TokyoGirlsrbは、女性が参加しやすい(でも女性限定ではない)勉強会です! 実物の伊藤淳一さんにも初めてお会いすることができました! 内容としては以下の4つの発表がありました!! ①去年の4月に…

Heroku Scheduler

先日、作成中のアプリで、1日1回メール送信を実行するためにwheneverというgemを使おうとしていたのですが、「それだとheroku上で動かないよ!heroku上で一定時間ごとに実行したいことがある際は、Heroku Schedulerというherokuのaddonが簡単で便利だよ!」…

group_byメソッドで同じ値をまとめる

TaskモデルとLabelモデルが多対多のアソシエーションが組まれており、 あるユーザーが使っているLabelの全種類&各Labelの使用回数を取り出したい事例がありました。 いきなり取り出そうとすると「どのメソッドを使えばいいんだ?!」と混乱したので、解決す…

AWSのsecret_access_key管理についての反省

現在作成中のアプリでActiveStorageを使用し、その保存先をAWSのS3に設定しています。 S3を使用できるIAMuserを作成し、そのsecret_access_keyとaccess_keyをcredential.ymlに保存していたのですが、いつの間にかcredential.ymlが消えてしまっておりました。…

ActiveStorageにアップロードしたファイルのダウンロード

本日、ActiveStorageにアップロードしたファイルのダウンロード機能を実装しました。 ダウンロード機能を実装するのは初だったので結構手間取りましたw その方法についてメモしておきます!! ①ActiveStorageの設定 以下のコマンドで、ActiveStorageに必要な…

GinzaRailsに行った

本日、初GinzaRailsに参加してきました!! 内容としては、 ・shinkuFencerさん「テストコード未経験者がRailsでそれなりにrspecがかけるようになるまでの話」 ・cawa さん「Rails 6 からRailsをわかっていく」 ・onkさん発表 の3つの講演がありました!! …