2015-09-01から1ヶ月間の記事一覧

Rails Dev Box on CentOS

AWSのEC2を動かす予定なので、CentOSでかつ、Rubyのバージョン管理ツールはrbenvなRails Dev Boxがほしいと思い。 totzyuta/rails-dev-box-centos · GitHub そのままのスクリプトの環境は下のような感じです。 Ruby: 2.3 Rails ~>4.2 DB: MySQL CentOS 64 KV…

shared_examplesで冗長なテストファイルをすっきりすまーと

RSpecで、おんなじようなexamplesがたくさん出てきたときに、shared_exampleでまとめてしまって簡単にしたのでソースコードのdiffをメモっとく。 summary テストする項目は、作成したメールのうち、 適切な題になっているか 適切な受信メールアドレスになっ…

【テスト編】ActionMailerでメールを送信する

せっかくなのでTDDで。 方針 Emailのテストに関しては以下の記事が非常に丁寧にまとめてくださっていて感謝感激です。 ActionMailer のメール送信テストを RSpec で行う | EasyRamble Emailのテストを書き始める前にRails Guidesのテストの項目に目を通して…

【RSpec】ActionMailer+ActiveJobのテストを書く

メール送信機能は処理時間が長いので遅延処理にしてる場合が多いと思うのですが、遅延処理のテストってどうやって書くねん!って思って苦労したので書き留めておきます。フィーチャテスト(Integration test)のスペックを書く想定です。 めっちゃいろいろ方法…

seeds.rbの使い方とマスタデータの取り扱いついて考える

1. マスタデータの扱いについて rake db:seedするたびにデータが挿入される。 idをインクリメントで自動挿入するときにめんどくさいことになる。 最初に挿入するマスターデータにassociationを張っている場合は、何回も生成してidが更新されると致命的なので…

ActiveAdminで新しいレコードだけ特定formを表示する

ActiveAdminを使っていて、新しいレコード、またはすでに存在しているレコード別々のフォームを表示させたいときには、以下のようにそれが新しいレコードかどうか条件分岐すればok if !f.object.new_record? f.input :status, collection: %w(init ready), s…

Railsで簡単バルクインサート

SQLには複数のデータを以下のようにぼぼぼっと登録する機能があります。 INSERT INTO books (columns) VALUES (values), (values), (values); これはバルクインサートと呼ばれて、普通に3回違うデータをINSERTするよりパフォーマンスがよくなります。 場合に…

idと名前を関連付けるformのselectはcollection_selectメソッドを使おう

collection_selectメソッドの存在を見落としていてselectメソッドで名前を取得して、controllerでそれを対応するidに変換してModel#saveしてしまっていた。 そんなときはcollection_selectメソッドがめちゃ便利なので使い方メモっておく。 定義部分はactionv…

booleanの条件分岐でifは使わない

どっちがいいかな... def is_valid? return false if name == "雑種" || name == "その他" true end def is_valid? if name == "雑種" || name == "その他" false else true end end なんて考えてたらたどり着いた以下の記事。 http://qiita.com/taiyop/item…

FactoryGirlで多対多の関連データを一緒に生成する

以下の記事を参考にさせていただきました。 FactoryGirl で多対多のアソシエーションをつくる http://blog.inouetakuya.info/entry/2013/12/28/205008 FactoryGirlsのアソシエーションのとこは以下から。 http://www.rubydoc.info/gems/factory_girl/file/GE…

Single vs Double Quotes in Ruby

Single vs Double Rubyでsingle quoteとdouble quoteを書くかは非常に迷いどころで、Rubyistたちの中でもどっちがメジャー、みたいなのはそこまでないみたい。 Based on everything I've read and a review of Ruby style guides, I would say there is no c…

Railsでのi18nでymlを使った日本語化手順

Rails Guideのi18nについての記事。ざっと目を通してみる。 http://guides.rubyonrails.org/i18n.html i18nという名前はiで始まってnで終わる間に18文字あるのが由来。なんかファンキー。 I18nのもっとも重要なAPI translate # Lookup text translations loc…

ActionMailerの非同期処理をActiveJob+Sidekiqで

この記事がめっちゃ分かりやすいです。ここに従って進めていきます。 http://qiita.com/QUANON/items/09c87787df6b0d287896 1. Redisをインストール Redisをインストールします。 $ brew install redis Redisについては、以下らへんが詳しいと思う。 Redisと…

ActionMailerのHTMLメールに画像を埋め込む

かっこいいメールを作りたくて、ActionMailerのViewで画像を埋め込めないかなーと思って調い。 以下を参考にしました。 メール - Rails ActionMailer 便利小ネタ集 - Qiitaqiita.com メール内にヘルパーを書き込んでも、パスがうまく反映されない。 Rails 4…