ハッキングバカ

プログラミングに関するメモ

Ruby

Rails で Font-awesome 5 系を使う

Rails で Font-awesome を使う場合 font-awesome-rails が一般的だったけれど、(今のところ) 5系に対応していない。 使いたい icon が5 系であることが多かったため、それらが使える font-awesome-sassに乗り換えることにした。 まずは gem に追加。font-awe…

Ruby インストール時の rdoc エラー[Ubuntu]

環境: ubuntu 16.04新しく建てた ubuntu サーバに ruby を rbenv を用いてインストールしようとしたらエラーが発生した。 $ rbenv install 2.5.1 ... Generating RI format into /tmp/ruby-build.20180913055306.29926/ruby-2.5.1/.ext/rdoc... Killed uncom…

whenever で cron を設定する[Rails]

環境 Ubuntu 16.04, Rails 5.2.0, Ruby 2.5.1cron で定期的なバッチ処理を行う場合の設定。 まずは Gemfile に whenever を追加。 # Gemfile gem 'whenever', '0.10.0', :require => false インストール $ bundle update 設定ファイルの生成 $ wheneverize .…

入れ子になった Model に pagination を適用する[Rails]

環境: Rails 5.2.0 Topic モデルが Comment モデルを has_many で持つとき、topic の show ページで comments を paginate したいときがある。 View で paginate を呼び出すことで対応できる。 # app/views/topics/show.html.erb <% comments = @topic.comme…

has_many で持つ Model の数を validate する[Rails]

環境: rails 5.2.0 Shop モデルが has_many で Product モデルを持つとき、その個数を1~32個の間に指定するような validation が欲しい。 一つは自分で作ること。 参考: Rails Model で has_many 定義した要素数を validate する方法 - Shred IT!!!! # app/m…

has_many で持つ子 Model の特定のカラムの和を求める [Rails]

分かりにくい題名になってしまったが、例えば User モデルが has_many で複数の Book モデルを持つとき、ある user が持つ books の price の和を求めたいとする。 user.books.sum(:price) で求まる。 参考: activerecord - Rails has_many :through sum att…

Rails 5 で Bootswatch 4 を使う

環境: macOS 10.13.4 Rails 5.2.0 Ruby 2.5.1bootswatch 3 は gem から入れられたけれど、4 を使おうとする時は違ったやり方をする必要がある。 まずはインストール。 yarn add bootswatch@4.1.1css を scss に変更。 mv app/assets/stylesheets/application…

turbolinks 使用時ページ遷移時に jQuery ready が発火しない[Rails 5]

環境: Rails 5.1.4, turbolinks 5.0.1turbolinks を使っていると、jQuery の ready がページを遷移しても呼び出されない。 // 最初の一度だけ $(document).ready(function () { // ... }) Rails 4系では jquery-turbolinks を使ったりするようだが、5系では…

uglifier の ES6部分におけるエラー [Rails]

環境: Ruby 2.5.0 Rails 5.1.4 Ubuntu 16.04 本番環境で assets をコンパイルしたところエラーが発生した rake assets:precompile RAILS_ENV=production rake aborted! ExecJS::RuntimeError: SyntaxError: Unexpected token: ~~~ /railspath/app/assets/con…