最近次のようなコードを書いて思うように動かないときがあった。 if Message.find(id).present? # 成功時の処理 else # 失敗時の処理 end どうも失敗時の処理がうまくいかない。 そのためドキュメントを確認したところ次のような表を見つけた。 メソッド名 …
EFFECTIVE Rubyの備忘録その2 扱っているオブジェクトはNilかもしれないことに注意する 本編ではBasicObjectやダッチタイピングについての言及があるがここでは割愛する。 オブジェクト呼び出しときに注意しなければいけないのは対象のオブジェクトがnilだっ…
最近先輩のエンジニアに勧められて読み始めたEffective Rubyの内容を備忘録がてらまとめてみた。 Effective Ruby作者: Peter J. Jones,arton,長尾高弘出版社/メーカー: 翔泳社発売日: 2015/01/09メディア: 大型本この商品を含むブログ (13件) を見る 項目1 …
リーダブルコードの一章と二章を備忘録がてらまとめてみた。 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典出版社/メーカー: オライリージャパン発…
昔つかっていたバージョンのパッケージをbrew installしてもできなかった場合にやってみてほしい方法を紹介する。 参照サイト 今回はpython3.5をインストールしてみる。 1. brew search pythonでインストールできるPythonのバージョンを探す 現時点(2018/11…
Solrを使う必要があったので、とりあえず手を動かして学べる教材を探したところ YouTubeにおもしろい動画Run Your Own Search Engine With Apache Solrを見つけた。 今回は本動画を紹介したい。 [Part 1/2] Run Your Own Search Engine With Apache Solr Sol…
1. きっかけ これまでrails4.2.0を使って学習していたが、 最近テキストを見ながらrails 5.0.0をインストールした際に 次のコマンドを実行するように記載されていた。 rbenv rehash しかし、どうしてこのコマンドを使わなればいけなかったかの記載がなかった…
本日は12 Things Every Junior Developer Should Learnに記載されていた、エンジニアを始める人が知っておきたい12の技術要素を紹介したい。 1. リレーショナルデータベースがどのように機能するか 2. 一般的なHTTPの流れ 3. 1つの言語のデバッグの仕方(1つ…
サーバ起動時にrails s、コンソール起動時にrails cを普段実行しているが、 ほかにも覚えていると便利なrailsコマンドを今回は紹介したい。 1. rails dbconsole データベースクライアントを起動する。 特定環境DBのSQLをたたきたいときに使用する。 $rails d…
先日、ローカルブランチでのconflict多すぎてリモートに合わせるのが難しいのでローカルブランチを強制的にリモートのに合わせたい。と思ったときに見付けたコマンドを紹介する。 以下コマンド記載。 git fetch origin git reset --hard origin/master それ…
今日はRubyの配列に関するメソッドdrop,takeについて紹介する。 1. drop リファレンスより参照。 # Array.drop(捨てる要素数) a = [1, 2, 3, 4, 5, 0] a.drop(3) > [4, 5, 0] 2. take リファレンスより参照。 # Array.take(要素数) a = [1, 2, 3, 4, 5, 0] a…
テーブルを呼び出す、または結合するメソッドがいくつかあるので、 今回はドキュメントに記載されている例を元に振り返る。 1. includes 関連しているテーブルを呼び出す。 Page.includes(:category) # SELECT "pages".* FROM "pages" # SELECT "categories"…
先日コードを読んでいたときに気になっていたメソッドblock_givin?について紹介したい。 1. block_given 公式サイトより参照。 メソッドにブロックが与えられていれば真を返します。 ブロックとは{}に囲まれた引数や処理のことである。 2. 実際に書いてみた …
今日はIf I knew then what I know nowという記事に書かれていた15のアドバイスを備忘録としてまとめた。 コードレビューのときは頭を下げなさい。謙虚でありなさい。 あなた自身ではなくコード自体のレビューですから。 コードを掘り下げる前には読書が必要…
N+1問題を解決するためにいつもbulletを使っているので、 使い方を忘れぬようメモをする。 1. bullet N+1問題が発生している箇所を検出、指摘するgem。 2. 使い方 まずはbulletをインストールする。 gem install bullet またはgemfileに書き込んだ後でbundle…
Rubyでarrayを扱うときに、Six Ruby array methods you need to know という記事を読んだ。紹介されたメソッドの中にはあまり使っていないのがあったので、 備忘録がてらまとめてみた。 1. Map/Each mapとeach、やっていることは同じだが次の違いがある。 - …
今日はoffsetについて振り返る。 offset 特定のレコード位置から取得する。 モデル。offset(取得開始位置) 使用例 次のコードでPageテーブルの7件目以降を取得できる。 Contact.offset(7) # SELECT "contacts".* FROM "contacts" OFFSET $1 [["OFFSET", 7]]…
railsのアプリケーションを作成したときにクラスを調べていたさいに ActiveRecord::Associations::CollectionProxyと表示されたので、 今回はこのRelationについて調べてみる。 1. 表示された状況 次のコードを書いていたときに ActiveRecord::Associations:…
railsのアプリケーションを作成したときにscopeの使い方を 学んだので、今回はscopeの使い方を振り返る。 1. scopeとは railsのモデル内に記載するメソッドのこと。 2. もしもscopeを使わなかったら 今回はContactとGroupの2つのモデルを用意する。 Contact…
趣味でPythonを書いていた時リストを簡単に書ける記法について学んだ。 今日はその記法である内包記法について解説する。 0. 内包表記とは リストや辞書型のオブジェクトを生成するための構文構造。 1行でリストを作成できる。 1. リスト型 基本的な内包記法…
rails g scaffodのコマンドを実行するとtestやhelperのような余分なファイルが生成されてしまう。 rails g scaffold book --<中略>-- invoke test_unit create test/controllers/books_controller_test.rb invoke helper create app/helpers/books_helper.rb…
本日はレコードの状態をチェックする4つのメソッドを解説する。 参考サイト Railsドキュメント 1. new_record? 対象のモデルが新しいコードかをチェックする。 > member_a = Member.new #<Member:0x00007f99decabe88 id: nil name: nil > > member_a.new_record? true 2. persisted? 対象のモデルが保存済み</member:0x00007f99decabe88>…
今日は定数を設定するconst_setについて調べてみた。 1. const_set 説明: クラスやモジュールに定数を設定する。 使い方: モジュール名.const_set(名前,値) 2. 実際に書いてみた 下のファイル(index.rb)を実行する。 class Product end Product.const_set…
任意のカラムの配列を取得メソッドのひとつであるpluckについて振り返る。 1. plunk 公式リファレンスより参照。 説明: 任意のカラムの配列を取得する 使い方: モデル.pluck(カラム名) 2. 実際の使用方法 もしもpluckを使わなかったら次のように書いていた。…
Gitコマンドを使っているときに、'同じコマンドをゼロから入力するのではなくて、tabを使用して補正したいな'と思ったので、 Gitコマンドを自動補完できるやり方を調べた。 1. 手順 まず必要なファイルの場所を特定する。 Git-completion.bash Gitの自動補完…
最近Rubyのコードを読んでいる時にyieldが使用されていたので、 yieldの用法を振り返る。 1. yield 公式ガイドより参照。 自分で定義したブロック付きメソッドでブロックを呼び出すときに使います。 引数をブロックパラメータとして渡してブロックを評価しま…
連絡先管理アプリケーションを作っているときに'クリックしているページによってnavberのタブに色を付け足いな'と考えたので、そのときの実装を解説します。 作成したアプリのリンク 1. 実際の画面 クリックしたページによって各タブがアクティブになってい…
環境構築でお世話になっているHomebrewでよく使っているコマンドを振り返った。 1. Homebrewとは Mac専用のパッケージ管理ツール このツールを使ってパッケージをインストールできる。 下のコマンドでMacにインストールできる。 /usr/bin/ruby -e "$(curl -f…
実際に"某変数をメソッドとして使用したいが、型が文字列なので実行できない"と困ったときに 学んだメソッドsendについて振り返った。 1. sendメソッドについて 公式ガイドより参照。 send (Object) --< 省略 >-- obj.send(name, [arg, ...]) --< 省略 >-- s…
最近Rubyで演算子式||=を使用していて便利だと思っていたが 特に式の左辺について注意しなければいけない点があるようなので今から解説。 ||=とは ドキュメント(https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html)より参照。 文法 式1 op= 式…