cannot load such file rails_helperが発生した時に疑うこと

RSpec3でテストを実行した時に、cannnot load such file rails_helperが表示されたときに疑うべきことは以下のこと。

  1. spec/rails_helper.rbが存在するか。特にRSpec2.xから3.xへアップグレードした時にはbundle exec rails g rspec:installを実行し忘れていることがある。
  2. ファイル名が_spec.rbとなっているか。命名規約なので、このとおりでないと動作しない。
  3. そもそもRSpec3.xがインストールされているか。RSpecのバージョンが正しくない時は動作しない。

RailsではGeneratorを利用してテンプレートを生成してから実装を行うので2については通常は起こらないけれども、自分でファイルを作成するときには注意する必要があります。ハマると気づくまでに時間がかかりますのでご注意を!

パーフェクト Ruby on Rails

パーフェクト Ruby on Rails

bootstrapでmodalを2重に表示するとbackdropが表示されたままになる

こんにちは。beaglesoftの真鍋です。

TwitterBootstrapでmodal多重表示するときにbackdropstaticを指定しているとbackdropが全面に表示されてしまうことがあります。これは最初に表示したモーダルダイアログ上でボタンなどをクリックして更にモーダルダイアログを表示するときに発生することがあるようです。

対応方法としては、以下のとおり対応することで事象を回避できました。

$("#child").modal({backdrop: 'static', keyboard: false});
$("#child").on('hidden.bs.modal', function (e) {
    console.log('hidden.bs.modal => ' + e);
    $('.modal-backdrop').remove();
});

#childは最初に表示されるモーダルダイアログで呼ばれるモーダルダイアログです。対応している方法では、#childが閉じられるときに.modal-backdropクラスを削除するようにしています。

たったこれだけの事なのですが、調べるのに結構な時間がかかりました…。

javascript - Bootstrap Modal Backdrop Remaining - Stack Overflow

Enjoy!

パーフェクト Ruby on Rails

パーフェクト Ruby on Rails

ActionModelをincludeしたモデルでdraperを利用する

こんにちは。beaglesoftの真鍋です。

drapergem/draper: Decorators/View-Models for Rails Applicationsを利用している時に、ActiveModelをインクルードしたモデルでdecorateメソッドを使用する場合にはDraper::Decoratableをインクルードすれば利用可能となります。

class SomeModel
  include ActiveModel::Model
  include Draper::Decoratable

  attr_accessor :field1, ...

end

Enjoy!

パーフェクト Ruby on Rails

パーフェクト Ruby on Rails