SprocketsとWebpackerを使わずWebpackのみでassets周りを管理した話(テスト編)

前回の記事のテスト編 ponpoko-nalplus.hatenablog.comCapybaraとChromedriverを使ったrspecを書いていく RSpecをインストール $ bundle exec rails generate rspec:install RAILS_ROOT/spec/rails_helper.rb にCapybaraの設定とChromedriverの設定を追記す…

SprocketsとWebpackerを使わずWebpackのみでassets周りを管理した話(動かすまで編)

Rails 6 がリリースされてWebpackerが標準搭載されるようになった。 個人的にSprocketsとWebpackerってどっちかでよくないかと思ったので、Sprocketsは使わずWebpackerでassets周りを全部管理しようかと思った でもこのWebpackerはフロントエンドのエンジニ…

rbenvでRubyを更新したのにUnicornが古いRubyを見にいってしまっていたときの対応

サーバー側のRubyをrbenvを使ってバージョンを上げて再デプロイしたら、古いほうのRubyをずっと見てしまう現象が発生した。ダウンタイムをなくすように RAILS_ROOT/config/unicorn/production.rbに設定していたのを思い出し、capのログの中身を見てみたら以…

application_controller.rb のrspecの書き方

例えばログインしたユーザーのニックネーム等に不備があった場合まず編集画面にリダイレクトさせたいという処理 application_controller.rb class ApplicationController < ActionController::Base before_action :authenticate_user! before_action :invali…

Rails5.1から render nothing: true が MissingTemplate になる

これだとダメになってた class UsersController < ApplicationController def show render nothing: true end end 5.1だとどちらかで書けるようになっている class UsersController < ApplicationController def show render body: nil end end class UsersC…

ActiveRecordのscopeの中でTime.nowを使ったときに起こる問題

model の中で scope を使うときに今の時間を比較してレコードをとってきたい場合に時間が固まってしまうことがある developmentモードでは起こらずproductionモードのみで起こる。 今日登録したユーザーを表示したいとなった場合 class User < ActiveRecord:…

Rails3系統でaccepts_nested_attributes_forでネストしたパラメータでuniqueness validationが適用されなかった

accepts_nested_attributes_forでネストして、フォームから送られてくるパラメータ上で値が重複してもDBに保存されていな限りvalidationができなかった 下記のような状態だと不可能 class User < ActiveRecord::Base has_many :emails accepts_nested_attrib…

iPhoneでJSのunloadが効かない時の対応

iPhoneだと別ページへ遷移するときとかに処理を入れたい場合使うunloadが無視されるためはまった。 pagehideを使うと別ページへ遷移する前に処理を行ってくれようになった <script type="text/javascript"><!-- $(window).bind('pagehide',function(){ //ここに処理を入れる }); --></script> これで…

carrierwaveでversionsによって保存先ディレクトリを変更する方法

サムネイルと通常表示したい画像を別ディレクトリに保存したい場合にはまった。 versionの中にstore_dirを定義することで解決。 class ImageUploader < CarrierWave::Uploader::Base storage :file def store_dir "uploads/#{model.class.to_s.underscore}/#…