higan96技術メモ

https://github.com/higan96

Ruby

Rspecでインスタンス変数に任意の値がセットされているかテストする方法

タイトルのままです。 GETメソッドなんかで、インスタンス変数の値に期待通りの値がセットされているかをcontrollerのテストで行う方法です。 it { expect(controller.instance_variable_get("@user").name).to eq 'hoge' } ここではインスタンス変数@userの…

Rspecでbefore_actionなどをテストするときはAnonymousControllerを使うと便利

ApplicationControllerなどにすべてのControllerで読み込まれるbefore_actionなどを定義していて、そのbefore_actionをテストをしたいときは、AnonymousControllerを使うと便利です。anonymous controller - Controller specs - RSpec Rails - RSpec - Relis…

sessionに保存されたHashの挙動がストア前後で変わる。

sessionに保存されたHashの挙動がストア前後で変わる。 session[:test_data] = {hoge: ‘fizz’, fuga: ‘buzz’ } としたとき、session[:test_data]の中身は {:hoge =>’fizz’, :fuga => ‘buzz’} となる。 しかしこれが別のアクションで使用するとき、つまり一度…

使っていないminitestでWarningが出たよ問題

version: rails: 4.1 rails4.1にupdateしたら、使っていないはずのminitestを要求されて、困惑しました。 Warning: you should require 'minitest/autorun' instead. Warning: or add 'gem "minitest"' before 'require "minitest/autorun"'shoulda-matcher…

paperclipでlocaleに関するエラーが出たので対処

Rails 4.0.3 paperclip 4.1.1ファイルアップロードのライブラリとしてpaperclipを使っているのですが、 ファイルサイズについてのバリデーションをModelに加え、テストも加えたのですが、どうにもlocaleファイルが無いよ、とテストを走らせるとエラーが出て…

Devise使っててNameError: wrong constant name mailersが出た時の対処

version: rails: 4.0.3 devise: 3.2.2config/initializers/devise.rb #config.mailer = 'Devise::Mailer' ↓ config.mailer = 'Devise::Mailer' 「config.mailer = 'Devise::Mailer'」のコメントを外したら動くようになりました。エラーの状況が発現したのが…

deviseのRemberable機能をデータベースにカラムを用意して使用する方法

deviseでは様々な機能がはじめから用意されています。それら機能はモジュール化されており開発者の用途に合わせて選択できるようになっています。 その中に「rememberable」という、所謂remember meの機能も用意されていて、その機能なのですが、少し変わっ…

Rails4なのにMassAssignに関するエラーが出た理由

症状 Rails4 + Devise + Omniauthを使って認証機能なんかを作っていたのですが、何故かMassAssignに関するエラーが出てしまい、新規ユーザーのレコードが保存できない事態に陥ってしまいました。 WARNING: Can't mass-assign protected attributes for User:…