カクカクしかじか

技術的なアレコレ

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

mongoidのupdate_allにバグがあるかもしれない?

gemのバージョン mongoid 6.1.1 MongoDBのバージョン Docker使用 mongo:3.6.12 概要 一対多のモデルに対する update_all が正しく動いてなさそう... 雑な例 (実際のコードとは関係ありません) Orderモデルにpending(入金待ち)、complete(決済完了)とcancel(…

brew updateの影響でreadlineに依存してるgemとtigが壊れた場合の解決法

発生エラー brewで最新のmondodbをインストールするために brew update を行った後 rails console を実行したら今回のエラーが発生しました。 $ bundle exec rails c /Users/shigeyukifukuda/.rbenv/versions/2.3.8/lib/ruby/2.3.0/irb/completion.rb:10:in …

HTMLのautocomplete属性とその種類について

概要 普段はサーバーサイドをメインにやっているのですが、先日HTMLもゴニョゴニョしないといけないことがあり、その際にHTMLのautocomplete属性に触れました。HTMLの属性について不案内だったのでここにメモしておきます。 autocomplete属性と種類 こちらの…

mongoidのtimeless.save関連のバグを見つけた備忘録

概要 mongoidには特定のインスタンスのtimestampを更新したくない時に、timestampだけ更新しないようにする仕組みがあります。 私は実務でActive Recordを使ったことがないので定かではないですが、Active Recordにも必ずあるはずです。 そのオプションを付…

MongoDBのODマッパーmongoidにプルリクエストを送ってみた

今回やったこと RailsからMongoDBを使うためのOD(Object Document)マッパーであるmongoidにプルリクエストを送りました。 github.com 概要 mongoidを使った時にrails g modelコマンドでデフォルトで生成されるファイルにはtimestampがincludeされないので、…

mongoidはデフォルトだとモデルにcreated_atとupdated_atが存在しないので追加する方法

問題 Railsでmongoidを使用した場合、デフォルトのままだと当たり前にあると思いがちな created_at と updated_at が存在しないモデルが生まれます。 今回はこれの追加方法について触れてみます。 解決法 モデルのファイルに include Mongoid::Timestamps を…

Docker環境のmongoidを使ったRailsアプリでDBに接続出来ないときの解決法

経緯 現場Railsのタスク管理アプリをDocker環境+mongoidで作っていて、タスクの保存画面を作成していたところ、タスクのcreateでエラーに遭遇しました。 発生したエラー Docker環境上でRailsのDB(MongoDB)に接続出来てなさそう... 発生環境 Docker for Mac …

Hello hey for Engineers vol.3(day2)でRuby2.7のパターンマッチングに関するLTをしてきました!

イベント詳細 hey.jp LT資料 私の発表がこちら! もう少し掘り下げれば良かったと猛省... 掘り下げて別のLTタイミングでリベンジしようと思います!(ホント悔しい) speakerdeck.com その他先輩方のLT資料の一部がこちら twitter.com t.co 感想 やはり、もう…

Railsのbinding.pryじゃない!Rubyのデバッガーを使う方法

Rubyのデバッガーを使う -r debug をつけてRubyのファイルを実行するとデバッグモードでファイルを起動することが可能です!!(知らなかった...) $ ruby -r debug 実行ファイル デバッグのやり方 Railsのbinding.pry同様にnext(次へ)やstep(メソッド呼び出しが…

RailsコマンドからORMを介さずにDBコンソールに直接アクセスする方法

rails dbconsoleコマンド知らなかった... 普段ActiveRecordと無縁の開発をしているので、ActiveRecordを使った開発で使うようなコマンドを知らなかったので、恥ずかしながらここにまとめますw rails dbconsole 使用しているDBそのもののコンソールを開くこと…

データ構造を雑にまとめる

そもそもデータ構造とは? パソコンで扱われる数値データを扱いやすいようにまとめた塊のことです。 種類 変数 配列 リスト キュー スタック 木(ツリー)構造 変数 値を格納する箱のようなものです。 配列 沢山ののデータを一箇所にまとめて入れておくタンス…

NATとブリッジの違いとネットワーク関係のアレコレ

ネットワークのアレコレ Virtualbox上のubuntuに対してローカルのMacからsshするためにネットワークの設定を変えねばならず、同一のネットワーク内での接続ですよ!と設定するためにデフォルトのNATからBridged Adapter(ブリッジ)に変更する必要があります。…

Ubuntu18.04で@(アット)\(バックスラッシュ)|(パイプ)が使えない問題の対処法

問題 USキーボードの状態でUbuntu日本語版を使用しているとデフォルトのままでは、USキーボードの本来のキー配列を正しく認識してくれないようです。 なので、パイプやアットマーク、バックスラッシュがそのままだと入力出来ません。 対象法 Ubuntuのターミ…

Ubuntu18.04で日本語入力を可能にする方法

対処法 こちらの記事にズバリな答えが書いてありました... do-you-linux.com

MacにVirtualboxを入れてUbuntuをインストールする雑な手引き

まずVirtualboxを落とす Oracle VM VirtualBox Ubuntuを落とす www.ubuntulinux.jp UbuntuをVirtualboxに入れるパスとタイプを指定 Virtualboxの仮想マシンタブから新規をクリックします。 そうすると以下の画像のようなモーダルが表示されます。 問題ない場…

Ubuntu18.04だとifconfigコマンドが標準で使えない?

問題 VirtualboxとホストのMacを接続するためにIPを調べようとして、Virtualbox上のUbuntuのターミナル上で ifconfig コマンドを打ったところCommand not foundになってしまいました... どうやらUbuntu18.04だとnet-toolsというパッケージが標準でインストー…

Linuxを基礎からやり直すvol.1

はじめに 基礎が出来てなくて最近何かと困るので、初歩の初歩からLinuxのお勉強をやり直していきます。 そもそもOSの役割 メモリの管理 ディスク管理(記憶装置の管理) ハードウェアからの情報をアプリケーションに受け渡す Linuxの動作の仕組み LinuxのOSはL…

Rubyの関数的メソッドについて

はじめに たまに関数型プログラミング言語の話題になるのですが、そもそもどういったものが関数的であるかについて自分自身理解していませんでした。 ここでは、Rubyの中で「関数的」と言われるメソッドの実行内容を見てみることでプログラミング言語の界隈…

Elixir環境構築~コンソールでの実行確認まで~

はじめに この投稿は普段Rubyを使っているエンジニアがサクッと環境を作ってElixirに触ってみたというものになります。 RubyKaigi2019でRubyの今後追加されるシンタックスがElixirから影響を受けている旨の発表がありましたが、本稿が気軽にElixirを試すきっ…

Hello hey for Engineers vol.3 でRuby(Rails)とOSSに関するLTをしてきました!

イベント詳細 hey.jp LT内容 上記イベントでRuby(Rails)とOSSに関する発表をさせて頂きました。 当日お聞き下さった皆様どうもありがとうございました。 speakerdeck.com

iTerm2の設定

記事を書こうかと思ったけど、こちらの記事がすでに最高だったので貼るだけにしておく。 note.mu

Rubyにおける例外の握りつぶし手法

はじめに どうしてもしょうがない時に使う例外の握りつぶし方についてメモ。 例外の握りつぶしとは? 本来エラーで処理が落ちるところを例外をなかったかのように処理を続行させること。 ちなみに当たり前ですが、例外を握りつぶすことで本来の例外が発生し…

HerokuにRailsアプリをデプロイするときにすること

はじめに 久々にHerokuにRailsアプリをデプロイしようとしたら、色々手順を忘れていたので備忘録として投稿します。 やること 1. Herokuにアプリを作る 2. Herokuにデプロイ 3. HerokuのDBをマイグレート 4. 表示確認 Herokuにアプリを作る ※MacにHerokuのCL…

正規表現 ~肯定的先(後)読み / 否定的先(後)読み~

はじめに 正規表現を書かないといけないことは頻繁にないものの、そのせいかいつまで経っても自分の中に定着せずに毎回調べているので、観念してちょっとずつまとめようかと思い投稿します。 正規表現の検証に便利なサイト 正規表現のチェックを行うのに便利…

JavaScripのPromiseで特定の値を条件によってPOSTせずに成功扱いにしたい時の実装メモ

はじめに JavaScriptで特定の値を条件によってPOSTしたくない時があるのですが、その実装を同僚がしていて参考になったので個人的なメモとして後々の振り返り用に放流しておきます。 また、後述するコード例は業務上のコードを抽象化したものなのでところど…

Docker環境でbetter_errorsを起動させるための設定

以下の記述を記載するだけ config/environments/development.rb if Rails.env.development? BetterErrors::Middleware.allow_ip! "0.0.0.0/0" end "0.0.0.0/0" ってなんだろう? docker-compose.yml でバインドしたIPのこと version: '3' services: web: bui…

Railsのモデル名.human_attribute_name(:カラム名)って何だっけ?

はじめに 業務でRailsをいじっているものの、1からセットアップするとなるとよく分かってないで使っている部分の多さに毎回驚きます... 今回もその一つのRailsの日本語化の部分を備忘録として投稿します。 Railsのモデル名.human_attribute_name(:カラム名)…

Dockerが起動しないときの対処法

Dockerが起動しない... 解決法 Dockerのアプリの preference から 以下の画面の Restart をクリックする。 実施後 無事反応することを確認!

Docker環境でRailsのルーティングを確認する方法メモ

はじめに 通常のローカル環境と同じように rake routes でルーティング確認しようとしたらうまく行かなかったので、その解決メモ。 やり方 通常の rake routes を docker環境で打ちますよ!というコマンドに変えてあげればOK! docker-compose run web bundl…

普段slimを使わない人のためのerbとの比較メモ

はじめに 現場Railsをちまちま進めているのですが、普段の仕事でerbファイルを使っていてslimの記法に全く慣れないので自分用のメモとして放流します。 erb記法との比較表 erb slim <%= notice %> = notice <% if flash.notice.present? %> - flash.notice.p…