Rails
過去の記事 前々回 前回 実現したいこと Nginxと同じようにRailsのアプリケーションログもKibanaで参照できるようにしたい。 引き続き、過去の記事で使用した環境に変更を加えていくのでdiffを記載していく。 Rails 参考 Collecting and Analyzing Ruby on R…
はじめに Docker? 構築 構築したいもの 各バージョン MySQL 参考 docker-compose.yml 変更点 注意点 Rails 参考 Dockerfile entrypoint.sh Gemfile docker-compose.yml database.yml Nginx config/puma.rb docker-compose.yml 注意点 Elasticsearch+Kibana …
主に絵文字(4バイト文字)を格納する際にMySQL標準のutf8では対応できず、utf8mb4を使用する必要があるがその対応方法がMySQLのバージョンによって多少異なるので対応方法のまとめ。基本的にゴールは同じだがMySQL5.7.7以降character-setでutf8mb4に指定する…
今知ったので書く。これまでActiveRecordのコールバック内でfalseを返していれば処理が停止していたが非推奨となり、停止したい場合はthrow(:abort)を呼ぶ方法に変わった。 Deprecated returning false as a way to halt Active Record callback chains. The…
Rails 5.0で導入されたMigration versioningでは、Migrationを作成する際にSuperClassにバージョンを指定することで挙動をコントロールできるようになりました。 Version the API presented to migration classes, so we can change parameter defaults with…
Rails 5.1がリリースされました。 Ruby on Rails 5.1 Release Notes — Ruby on Rails Guides待望のsecrets.ymlの暗号化が取り込まれているので早速使用してみました。 暗号化されたsecrets.yml生成 $ rails secrets:setup生成されるファイル config/secrets.…
Rails5のAPIモードを利用してAPIを作っているがHTTPメソッド PUTでの通信がうまくいかなくて調べた結果判明した。 middleware.use ::Rack::Runtime middleware.use ::Rack::MethodOverride unless config.api_only middleware.use ::ActionDispatch::Request…
昔bigintを指定する際はintegerのlimitを5以上(8にすることが多かった)にしたり、主キーをbigintに変更するにはSQLを直接書いたり少々面倒だった記憶が残っているが、さすがに今はそんなことしていないだろうと思い調べた。結論を言えばこれだけでよくなった…
結論 json 1.8.2以降を使用する 上記IssueでRuby2.2対応は1.8.2含まれたことがわかる。 表示されるエラー 恐らくrb_new_strの引数の数が変わった為エラーになっていると推測するが、Ruby2.2から変更になったという確かなソースはまだ見つけていない。 Instal…
sprocketsというgemが担っている部分なのでsprocketsのstubディレクティブの説明になる。 stubディレクティブはsprockets v2.2.0から実装された機能。Railsだと下記の様な記述があって/app/assets/javascripts/以下のファイルを全てコンパイルして使用するよ…
jquery-railsで読み込まれているjQueryを何気なく見たら1.11.2を使用していて2系にバージョンアップするにはどうしたらいいのか調べたら公式に書いてあった。 If you want to use jQuery 2, you can require jquery2 instead: //= require jquery2 //= requi…
本番環境でWebrickで運用することはまず無いと思うが、開発時にproduction環境で動作を確認したいことがあったが少し設定の必要があった。 まずAsset Pipelineを使用するのでrake assets:precompileをしておく必要がある。 ApacheやNginxで動作させる場合に…
developmentだと問題なく動いていたがproductionで動かしてみたら掲題の通りの例外が発生。 このメッセージを表示している構文はこうなっている。掲示されているsecret_keyはランダム生成されているものだとわかる。 def raise_no_secret_key #:nodoc: raise …
Rails3.1以前は authenticate_or_request_with_http_basic メソッドをbefore_filter内で呼ぶなりして実装していたがRails3.1にて http_basic_authenticate_with クラスメソッドが追加された。 #270 Authentication in Rails 3.1 - RailsCastsActionControlle…
factory_girl_railsのSyntax追加をいつも通りspec/support/factory_girl.rbを作成したが有効にならないので調べた。ChangeLogに記載されていた。 Update rails_helper generator to allow users to opt-in to auto-loading spec/support files instead of fo…
Rails4.2から新しいフレームワークとしてActiveJobが取り込まれ、バックエンドを気にせず実装を行えるようになった。 Ruby on Rails 4.2 Release Notes — Ruby on Rails Guides#ActiveJobバックエンドにはResque、Delayed Job、Sidekiq等が選択できる。 conf…
既にRailsではspringがデフォルトで導入されている。 当然rspecを使う際にもspringを活用したいので方法を調べた。github.com guard-rspecにOptionsとして紹介されているspringを用いた場合のGuardfileの書き方。おお簡単じゃんということで早速spring rspec…
Railsプロジェクトを新規作成する際下記オプションを使用するとMinitestを除いたRailsプロジェクトが作成される。 $ rails new hoge -Tプロジェクト開始後途中でMinitestからRSpecに変更したくなった場合は何をすればいいのか? テストコードの移植等には触…
Rails4.1からRails4.2にバージョン上げようとGemfile修正してbundle update叩いたらNokogiriのインストールでこけた。 確かにNokogiriをインストール準備はしてないから落ちるのはわかるんだけどいつから依存するようになったの?答えは4.2から。HTMLサニタ…
Installing with ruby 2.0.0-p195 on Mavericks · Issue #261 · rubyjs/therubyracer · GitHub 上記Issueに書かれているとおりだが0.12.0なら治っているからそれを使えばよい。マーベリックス入れた時のメモにしかなかったからここにも書いとく。
RAPNSはiOS,Android,WindowsPhone等のプッシュ通知サービスのプロバイダ側の機能を提供しているプラグインで丁度触っているところだったからびっくりしている。 RAPNS HAS MOVED. It is now called Rpush, the repository is here: https://github.com/rpush…
Rails技術者認定シルバー開始前に受験しておこうと思いまして受けまして合格しました。 Rails3なんですよね。
情弱であるので今日知ったところです。https://github.com/capistrano/capistrano/blob/master/CHANGELOG ## 2.10.0 / Febuary 19 2012~略~Includes multistage, without `capistrano-ext`. `require 'capistrano/ext/multistage'` (fixed by Lee Hambley) …
ActsAsParanoidを使用してdestoryをコールするとレコードを論理削除してくれるのですが、 CarrierWaveで指定しているafter_destoryのコールバックが実行されてしまい画像が消えてしまいます。 今回は、論理削除する際に画像を残したかったので調べました。gi…
公式ドキュメントに載ってるのを教えてもらいました。 ActiveRecord::Callbacks _create_callbacks _validate_callbacks _update_callbacks _save_callbacks _destroy_callbacks 上記クラスメソッドを実行するとトリガー毎のコールバックのインスタンスが取…
ja.active_admin.scopes.scope_name に設定すればよい
acts_as_paranoidはRailsで論理削除を使う際に便利なプラグインですが既に更新されておらずRails3系に対応しているのはrails3_acts_as_paranoidという別のライブラリです。 rails3_acts_as_paranoidのバージョンが0.4.0に上がった時に作者がacts_as_paranoid…
Highchars JSをRailsで使うlazy_high_chartsを使って円グラフを表示する。 https://github.com/michelson/lazy_high_charts/ Railsでグラフを作成するにはgruffというgemもありますがこちらはサーバサイドでグラフをごりごり作った後表示させるのに対し、 Hi…
ドラッグアンドドロップでファイルをアップロードする方法について調べてHTML5 FileAPIをjQueryと絡めて使うのがよさそうだなという結論に至った。 理解するのに時間かかりそうな感じ。javascriptというかイベント駆動というかそういうところ苦手すな。勉強…
Railsのissuesに4ヶ月前に挙がっていた。3.2.13には適応されているので3.2.13を使うようにした。 https://github.com/rails/rails/pull/8405