Rails で 検索機能を実装する際にフルネームで検索できるように実装したい

こんにちは!kossyです! さて、今回はRailsで検索機能を実装する際に、フルネームで検索できるようにする方法を ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.0 Mysql 5.7.23 前提 usersテーブルがあり、カラムとして last_name firlst_nam…

Railsでenumを定義している時、自動でscopeが定義される

こんにちは!kossyです! さて、今回はRailsでenumを定義すると、自動でscopeが定義されるので、 その使い方についてブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Mojave 使い方 例えば、Articleモデルがあって、 class Article enu…

Railsでsendgridのmessage_idを取得したい

こんにちは!kossyです! さて、今回はRailsでsendgridをメール配信サービスとして使用していた時に、 message_idを取得する方法についてブログに残してみたいと思います。 環境 Ruby 2.5.1 Rails 5.2.3 MacOS Mojave なお、sendgridの設定周りについての説…

RailsにおいてDate.todayで日本時間が返らない原因を探った話

こんにちは!kossyです! さて、今回は個人開発でLineBotをRailsを使って作成した時に、 Date.todayで日本時間が返らなかった時の備忘録を残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.2 MacOS Mojave config.active_record.default_timezoneの設定…

Railsでsendgridを使ってメールを一斉送信したい

こんにちは!kossyです! さて、今回はRailsでメール配信サービスとしてsendgridを使っている場合に、 メールを一斉送信する方法について、ブログに残してみたいと思います。 環境 Ruby 2.5.1 Rails 5.2.3 MacOS Mojave なお、sendgridでメール送信を行う設…

Rubyのsendとinjectを使って短くスッキリしたコードを書く

こんにちは!kossyです! 1ヶ月ほど更新できていませんでした。。。 大きめの機能追加に目処がついたため、少し余裕ができました。 これから可能な限り、ブログを更新したいと思います。 さて、今回はRubyのsendメソッドとinjectメソッドを使って、短いコー…

Railsのenumで定義した値がenum内の値かどうかを検証する

こんにちは!kossyです! さて、今回はRailsにおいて、enumで定義した値がenum内の値かどうかを検証する方法について、 ブログに残してみたいと思います。 環境 Ruby 2.5.1 Rails 5.2.3 サンプル 例えば下記の実装があったとします。 class Article enum sta…

RailsでObject.has_many.has_manyという関連が組んである場合のデータ取得

こんにちは!kossyです! さて、今回は、Object.has_many.has_manyという関連が組んである場合のデータ取得の方法を ブログに残したいと思います。 環境 Rails 5.2.3 Ruby 2.5.1 MacOS Mojave mapやflattenを使う! 「学生は講義をいっぱい持っていて、講義…

Rubyでオブジェクトをハッシュ化して特定のkeyを取り除いて新たなハッシュを返す

こんにちは!kossyです! さて、今回は、Rubyでオブジェクトをハッシュ化して特定のkeyを取り除いて新たなハッシュを返す方法について、 ブログに残してみたいと思います。 下記のようなオブジェクトがあるとします。 => #

FactoryBotで多対多の関連を組んでいる時のモックデータを作成する

こんにちは!kossyです! さて、今回はFactoryBotで多対多の関連を組んでいる時のモックデータを作成するやり方について、ブログに残してみたいと思います。 例えば、 学生(students)は授業(rectures)を複数持っている 授業は学生を複数持っている という関…

RubyのTimeクラスのメソッド「strptime」の使い方

こんにちは!kossyです! さて、今回はRubyのTimeクラスのメソッドである「strptime」の使い方をブログに残してみたいと思います。 環境 Ruby 2.5.1 Rails 5.2.3 MacOS Mojave 2020-03-28T21:05:06+09:00 みたいな表示をparseする ログの時刻表示が2020-03-2…

RequestSpecを書く際にiso8601メソッドを使ってcreated_atのテストを通す

こんにちは!kossyです! さて、今回はAPIモードで実装されたRailsのRequestSpecを書く際に、 iso8601メソッドを使ってcreated_atのテストを通す方法について、ブログに残してみたいと思います。 環境 Ruby 2.5.1 Rails 6.0.2.1 MacOS Mojave 普通に比較する…

STIを使っている時のFactoryBotでのモックデータの作成

こんにちは!kossyです! さて、今回はSTI(SingleTableInheritance)を使ってクラス定義をしているクラスの FactoryBotでのモックデータの作成の仕方について、ブログに残してみたいと思います。 環境 Ruby 2.5.1 Rails 5.2.3 MacOS Mojave なお、STIが何かに…

Rspecで画像アップロードのテストデータを準備する

こんにちは!kossyです! さて、今回はRspecで画像アップロードのテストデータを準備する方法について、 ブログに残してみたいと思います。 環境 Ruby 2.5.1 Raila 5.2.3 MacOS Mojave Rack::Test::UploadedFileクラスを使う Wraps a Tempfile with a conten…

Reactの学習に使えそうなサイトまとめ

こんにちは!kossyです! さて、今回はReact初心者の学習に使えそうなサイトをまとめてみたいと思います。 1. Deep Dive Into Modern Web Development fullstackopen.comReactだけでなく、周辺ライブラリや、GraphQLとの連携までカバーしています。初心者向…

babel-polyfillでIE対応

こんにちは!kossyです! さて、今回はVueCLI 3系で作った Vue.js 2系のWebアプリをbabel-polyfillでIE対応する方法について、 ブログに残してみたいと思います。 環境 Vue.js 2.5.17 VueCLI 3.0.1 MacOS Mojave npm 6.5.0 node 11.8.0 babel-polyfillをnpm …

Rubyのany?でレコードの配列が特定の日にちの範囲内に含まれているかを判定する

こんにちは!kossyです! さて、今回はRubyのEnumerableクラスのインスタンスメソッドである、any?メソッドを使って、 レコードが特定の日にちの範囲内に含まれているかを判定するやり方をブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.2.1 M…

ServiceWorkerが原因で最新のデプロイが反映されなかった話

こんにちは!kossyです! さて、今回はServiceWorkerが原因で最新のデプロイがすぐに反映されなかった話をブログに残してみたいと思います。 今まで何回かキャッシュ関連のエントリを書いていました。 kossy-web-engineer.hatenablog.comkossy-web-engineer.…

Railsで同一モデル内で関連を組む

こんにちは!kossyです! さて、今回はRailsで同一モデル内で関連を組む方法について、ブログに残してみたいと思います。 環境 Rails 6.0.2.1 Ruby 2.5.1 MacOS Mojave 実装手順まず、Appointmentモデルがあったとします。 $ rails g model Appointment date…

RailsでOpenWeatherMapAPIを使ってjsonを返すAPIを作る

こんにちは!kossyです! さて、今回はOpenWeatherMapAPIをRailsから叩いて、JSONとして返却する方法について、 ブログに残してみたいと思います。 環境 Rails 6.0.2.1 Ruby 2.5.1 MacOS Mojave API keyの取得 yuukiyg.hatenablog.jp上記の記事を参考に、API…

RailsのArrayの拡張メソッド「inquiry」

こんにちは!kossyです! さて、今回はRailsのArrayの拡張メソッドであるinquiryの使い方について、ブログに残してみたいと思います。 使い方 pets = [:cat, :dog].inquiry pets.cat? # => true pets.ferret? # => false pets.any?(:cat, :ferret) # => true…

Rubyの標準モジュール「NKF」で全角英数字を半角に変換する

こんにちは!kossyです! さて、今回はRubyの標準モジュールである「NKF」を用いて、 全角英数字や全角スペースを半角に変換する方法をブログに残してみたいと思います。 環境 Rails 6.0.2.1 Ruby 2.5.1 MacOS Mojave 方法 こんな感じのCSVファイルがあった…

rails r でターミナルからRailsのコードを実行する

こんにちは!kossyです! さて、今回はrails r コマンドでターミナルからRailsのコードを実行する時のTIPSをご紹介できればと思います。 環境 Rails 6.0.2.1 Ruby 2.5.1 MacOS Mojave クラスの継承順位を出力する 例えばRailsアプリケーションにBookモデルが…

Rubyのnet/httpsでGoogleBooksAPIを叩いてみる

こんにちは!kossyです! さて、今回はRubyの標準モジュールであるnet/httpsを使って、 GoogleBooksAPIを使う方法について、ブログに残してみたいと思います。環境 Ruby 2.6.3 Rails 6.0.2.1 MacOS Mojave GoogleBooksAPIから返却されるJSONを見てみる 下記…

ActiveRecordのfindとArrayのfind

こんにちは!kossyです! さて、今回はActiveRecordのfindとArrayのfindがどのようにして挙動を切り替えているか、 気になったので調べてみました。 ブロックの有無で分岐していた # activerecord/lib/active_record/relation/finder_methods.rb def find(*a…

ubuntu環境の日本語化

こんにちは!kossyです! さて、今回はvirtualbox + vagrant でubuntu環境を構築する際に、出力を日本語化する手順について、 ブログに残してみたいと思います。 なお、virtualbox + vagrant のダウンロードについては割愛します。 実行手順 まずはbox add …

キャメルケースの文字列をスネークケースに変換するActive Support::Inflectorの「underscore」メソッド

こんにちは!kossyです! さて、今回はキャメルケースの文字列をスネークケースに変換する「underscore」というメソッドの使い方を ブログに残してみたいと思います。 Active Support::Inflectorってなに? ActiveSupport::Inflector によると、 The Inflect…

Railsのenumで定義したシンボルを元に文字列を返すメソッドを定義する

こんにちは!kossyです! さて、今回はRailsのenumで定義したシンボルを元に文字列を返すメソッドを定義したいと思います。 enumの詳しい説明は割愛します。 実装方法 class User enum role: [:general, :admin] end Userクラスがroleというカラムを持ってい…

ng-container で不要なタグを出力するのを防ぐ

こんにちは!kossyです! さて、今回はAngularのディレクティブの一つであるng-containerの使い方について、 ブログに残してみたいと思います。 ng-containerってなに? Angular日本語ガイドによると、 は Angular パーサーによって認識される構文要素です。…

実務に入る前に知りたかったRails周りのことをまとめてみる

アプリケーションの設計について ・Rails API mode について Rails による API 専用アプリケーション - Railsガイド Rails5とAPIモードについての解説・エラーハンドリングについて Railsアプリケーションにおけるエラー処理(例外設計)の考え方 - Qiita …