blog.waterlow.work

Ruby, Rails, js, etc...

【LT】表参道.rbでActiveRecordのテーブル名の決め方等について発表してきました。

はじめに ActiveJobのキュー名の設定をどうするかを考えていた過程で、ActiveRecordのテーブル名の決め方を調べていました。色々と面白いところがあったので表参道.rbで発表してきました。(ただのテーブル名あてゲーです。) ActiveRecordのテーブル名の話 …

【LT】encrypted secretsについて社内LT大会でしゃべってきました。

はじめに Rails5.1で導入されたencrypted secretsについて所属する会社の社内LT大会で発表してきました。 0323社内LT大会 from Akira Ohta 内容 5分だったので大したことは書いていませんが、機能の説明以外はstaging問題やメインです。 所感(使えそう?) …

rebuild.fmのエピソード検索ができるwebサイトを作った

はじめに Rails5.1の新機能を試すために、簡単なRailsアプリを作りました。 rebuild.fmのゲストとshownoteにフィルタリングをかけて検索できるようにしたものです。 heroku: https://shielded-river-53880.herokuapp.com/ idcf: http://rebuildfm-search.wat…

【LT】Railsのyaml、巨大になる前になんとかしようという内容で発表してきました!

はじめに 最近しごとで巨大なyamlを何とかするという仕事をやっていて、いろいろ思うところがありました。 これは今後の糧にしよう!とおもい、スタートアップRails勉強会で発表してきました。 そのyaml放っておくと大変なことになりますよ from Akira Ohta …

Qiitaに初投稿!「hamlでタグを改行しない方法の整理」という記事を書きました

はじめに タイトルの通り、Qiitaデビューした。前々から投稿したいと思っていたのだが、「ネタがない」「時間がない」などの言い訳をしつつ渋っていましたが、この度初投稿しました。 なんでこの記事を書いたのか 以前働いていたところでは、デザインはデザ…

bootstrapとsimple_formのチュートリアル

目的 rails newしてから、bootstrapで管理画面を作るのに一番早い方法が何かを探っていた。 rails_adminやactive_admin等もあるが、今回はある程度自前カスタマイズを想定しているので、全部ビルトインみたいな感じのものは使わない。 bootstrap系のgemとsim…

これだけ抑えればOK!権限管理のDB設計デザインパターン

目的 最近仕事で権限管理の設計をやっていたのだが、設計でかなりはまってしまった。 今後ははまらないように、DB設計や判断基準をまとめておく。 ベースとなるパターン ユーザとロールは多対1で、ロールとアビリティは多対多に関連している。 権限管理やり…

【Railsチュートリアル】慣習的に正しいコードの書き方

目的 Railsチュートリアルで「このコードは慣習的に正しくない」という記述があるが、なぜなのかを説明する。 背景 Railsを仕事で書いていく上で、モデル同士の関連の定義とその使い方をわりと意識しているのだが、いつどこで勉強したのか怪しかった。 出典…

sendgrid-rubyを使ったSendGridでのメール送信

はじめに この記事は「Sansan Advent Calendar 2016」7日目の記事です。 昨日はerikoobeさんによる「エンジニア未経験者が Ruby を学んでみた件」でした。 特に「2. 未経験者から見た、エンジニアの世界」は共感できたのと同時に、やる気のある人へのサポー…

【Ruby】【Rails】RAILS ANTIPATTERNS、chapter3 viewのまとめ

目的 RAILS ANTIPATTERNSをのchapter3(view)の箇所を読んだのでまとめました。 Rails AntiPatterns: Best Practice Ruby on Rails Refactoring (Addison-Wesley Professional Ruby Series)作者: Chad Pytel,Tammer Saleh出版社/メーカー: Addison-Wesley Pro…

【Rails】【RSpec】【shoulda-matchers】validate_uniqueness_ofのscoped_toではまったときのまとめ

目的 shoulda-matchersでモデルのバリデーションのテストを書いていたときに、Railsのアトリビュートメソッドのキャッシュの動きで若干はまったため、簡単にまとめる。 github.com shoulda-matchersの簡単な導入 shoulda-matchersはgemで、RSpecやMinitestに…

【Rails】権限管理のgem「pundit」を使ってみたときのまとめ

目的 punditというgemを使う際に「Rubyist Magazine - 権限管理のgem、Punditの紹介」を参考に作ったときのまとめ。 railsにapp/policiesディレクトリって何を入れるのかというところを前回調べたのですが、代表的なものとしてpunditというgemを使うと出て来…

【Rails】policiesディレクトリの使い方

目的 railsにapp/policiesディレクトリを作るときに、中身には何を入れるのかまとめる。 パーフェクトRuby on Railsの9章を読んでいて、コールバック・バリデーションをモデルから分離して、独立したクラスを作る方法を学びました。 パーフェクト Ruby on R…

【パーフェクトRails】バリデーションをクラスに分離する

目的 パーフェクトRuby on Railsの9章の9−2「複雑なバリデーションとコールバックを整理する」を読んでいて 「バリデーションをクラスに分離する」について、知らないことがいくつかあったのでまとめます。 パーフェクト Ruby on Rails作者: すがわらまさ…

【パーフェクトRails】コールバックをクラスに分離する

目的 パーフェクトRuby on Railsの9章の9−2「複雑なバリデーションとコールバックを整理する」を読んでいて コールバックをクラスに分離する場面ややり方がよくわからなかったのでまとめる。 パーフェクト Ruby on Rails作者: すがわらまさのり,前島真一,…

【Ruby】【キャッシュ】dalli(memcachedのクライアントgem)を使ってみました

目的 memcachedとrubyのmemcachedクライアントであるgemのdalliを使ってみたのでまとめ memcached.org github.com 少し前に、キャッシュについていろいろやらないといけない機会があったのですが キャッシュを実現するミドルウェアを触ったことがなかったた…

【DB設計】T字型ER入門

目的 T字型ER手法を勉強することになったので、概略とまとめ データベース設計論 T字形ER―関係モデルとオジブェクト指向の統合をめざして作者: 佐藤正美出版社/メーカー: ソフトリサーチセンター発売日: 2005/09メディア: 単行本購入: 3人 クリック: 42回こ…

なぜ実践DDDが理解できないのか

目的 実践ドメイン駆動設計を読んでいたが、思うように理解が進まないので、なんでなのかを分析する。 実践ドメイン駆動設計作者: ヴァーン・ヴァーノン出版社/メーカー: 翔泳社発売日: 2015/03/19メディア: Kindle版この商品を含むブログ (2件) を見る 最近…

【DB設計】「楽々erdレッスン」のまとめ

目的 「楽々ERDレッスン」を読んだので、そのまとめ 楽々ERDレッスン (CodeZine BOOKS)作者: (株)スターロジック羽生章洋出版社/メーカー: 翔泳社発売日: 2006/04/18メディア: 単行本(ソフトカバー)購入: 72人 クリック: 940回この商品を含むブログ (120件…

【読書ノート】SOFT SKILLS ソフトウェア開発者の人生マニュアル(学び方を学ぼう、後半)

目的 soft skilsに載っている独学の方法をまとめる。(後半) 前回の記事は以下 waterlow2013.hatenablog.com soft skilsという本がちょっと前に話題になっていたのですが、その中に「学び方を学ぼう」という章があります。 SOFT SKILLS ソフトウェア開発者…

【読書ノート】SOFT SKILLS ソフトウェア開発者の人生マニュアル(学び方を学ぼう、前半)

目的 soft skilsに載っている独学の方法をまとめる。(前半) soft skilsという本がちょっと前に話題になっていたのですが、その中に「学び方を学ぼう」という章があります。 SOFT SKILLS ソフトウェア開発者の人生マニュアル作者: ジョン・ソンメズ出版社/…

【備忘録】Atomの今後使っていきたいキーバインディング

目的 勉強の復習と自分用チートシート目的。 最近Atom実践入門という本を読んで、まだまだAtomには知らない機能がたくさんあることを改めて感じました。 Atom実践入門──進化し続けるハッカブルなエディタ (WEB+DB PRESS plus)作者: 大竹智也出版社/メーカー:…

【Rails】DatabaseCleaner導入でテストが遅くなった話

現在仕事のrailsプロジェクトで、feature specの導入のところでdatabase_cleanerの設定でいろいろ時間を費やしたため、時間を費やした箇所についてまとめておこうと思います。 その時のRailsバージョン/Rubyバージョン:3.2.11/1.9.3。古い! DatabaseCleane…

【Ruby】配列の&と|の機能について

特殊なルールで配列を並び直す。たとえば ['いち', 'に', '', 'よん', 'なな', 'ご'] から ['に', 'よん','いち', 'ご', 'なな'] を作りたい(奇数が優先、2で割る等の数値演算はできない)ときはどうするか。 ①まず以下のようにやることを思いついた。 ['い…

【ActiveRecord】exists?の引数にwhereクエリの内容を書いてみたらうまくいかない。

Person.exists?(1) # => true # SELECT 1 AS one FROM `job_offers` WHERE `job_offers`.`id` = 1 LIMIT 1 Person.exists?('id = 1') #=> false # SELECT 1 AS one FROM `job_offers` WHERE `job_offers`.`id` = 0 LIMIT 1 なぜか? exists?にArrayもしくはH…

railsエンジニアの勉強法(読む本とか)まとめ

初心者レベルを脱却するための記事とか読む本とか、いろいろと溜まってきたのでまとめておこうと思います。 勉強するのは常に一人なので、歩みは非常に鈍いのですが…Rails で "とりあえず動くコード" を書けるようになった人が次に遭遇する問題とそれを解決…

【ruby】モジュールをextendした時の動き

タイトルそのまんまです。 疑問だったのでいろいろ調べてみたのですが、メタプログラミングRubyの特異クラスのところを読んでいたらわかりました。 オブジェクトからモジュールをextendすると、そのメソッドはオブジェクトのクラスではなく特異クラスに入る…

【Google Analytics】簡単!メルマガの開封数を取得する方法

お仕事で使ったTipsです。 メールマガジン(以下メルマガ)がどのくらいの人に開封されているかを探る方法のメモです。 ※以下の方法はHTMLメールの開封数しか取れません。簡単に言うとimgタグを使ってサーバにリクエストを送るものです。 前提として日本語の…

【ruby】【備忘録】ユーザをいくつかのグループに分ける・カウントする

備忘録 記事のタイトルと冒頭文のテストをする。 そのために、オブジェクト(ユーザ)を4つのグループに分けたい。 分け方に対する議論は一旦置いておいて、ひとまずidで順番にグループ分けをしてみる。 User = Struct.new(:id, :email, :test_pattern) user…

【ruby】破壊的操作がなければdupは使って良さそう

最近rubyでdupというメソッドを使いました。dupと言うのはオブジェクトの”コピー”を作るのですが、一般的には以下の様な懸念点が有ります。 Marshalで配列やハッシュをディープコピーする 簡単に言うと a = ["foo", "bar", "baz"] b = a.dup a[0].upcase! p …