2014-06-01から1ヶ月間の記事一覧

Rails4 ActiveRecordでorを使用する簡単な方法

以前、ActiveRecordでorを使用する方法を見つけましたが、もっと簡単な方法がありました。 Rails4 ActiveRecordでorを使用する - ayaketanのプログラミング勉強日記 ユーザーが所属を3つ持つことができるとします。 ある所属に属するユーザーを抽出するには…

Rails4 ヘッダのみのCSVファイルをダウンロードする

CSVファイル読み込みのテンプレートファイルとして、ヘッダのみ記載されたCSVファイルのダウンロードをしたかった。 CSV出力の情報は多かったが、ヘッダのみの情報が少なくてちょっとつまずいたのでメモ。 モデルにメソッド追加 # CSV読み込みのテンプレート…

Rails4 rspec3に変更したら今まで通っていたテストが失敗した。

rspecのバージョンを3.0.1に上げた後、テストを実行したら、今まで通っていたテストのほとんどが失敗した。原因は2つあった。1つ目は、be_trueとbe_falseが、be_truthyとbe_falseyに変更されていたからだった。be_trueをbe_truthyに、be_falseをbe_falseyに…

Rails4 3階層のincludesの指定

N+1問題解決のため、includesの設定をしていた。groupがuserを参照しており、userがdepartmentを参照しているとき、groupからdepartmentをincludesで指定するのにちょっと手間取った。group → user → department 下記のように書いてもうまくいかなかった # @…

Rails4 where句をnotで否定する

私は今まで、点数がある点数以外のときというスコープを下記のように書いていました。 scope :score_is_not, ->(score) {where("score != ?", score)} いまさらですが、Rails4では、where句をnotで否定できるようです。 scope :score_is_not, ->(score) {whe…

Rails4 rspecとFactoryGirlを用いたdeviseでサインインした状態でのコントローラのテスト

サインインをdeviseを用いて実装している。 サインイン必須のコントローラのテストをおこなうときに、サインイン状態を作るのに少し手間取ったのでメモ。 spec\spec_helper.rbに下記のように記載 RSpec.configure do |config| … config.include Devise::Test…