rails

Atom上でRailsプロジェクト内のファイル移動を楽にするRails-Transporterというパッケージを書いた

最近Emacsからgithub製のテキストエディターであるAtomに移行しました。慣れるまで1週間ほど移行期間は必要でしたがデフォルトの設定で十分高機能で使いやすいです。自分は普段の仕事ではRailsアプリの開発をする事が多いのでRails開発で使える便利そうなパ…

RailsでArgumentError: invalid byte sequence in UTF-8が発生する場合の解決策

Railsで作成されたアプリケーションのリクエストURLにURLエンコード(壊れていてUTF8にデコードできない)された文字列を含めるとArgumentErrorが発生します。 環境 ruby 2.0.0p353 rails-4.0.4 再現方法 サンプルプロジェクトを構築 # railsの最新版をインス…

Apache Passengerの設定項目について調べた

PassengerはRailsを動かす事ができるアプリケーションサーバである。 Apache版の設定項目について調べたので自分用の備忘録として残しておく。 バージョン Passenger-4.0.37 http://www.modrails.com/documentation/Users%20guide%20Apache.html Configuring…

dalliの挙動を検証してみた

Rails4でmemcachedをキャッシュストアで使う定番gemといえばdalliとRailsGuideに書いてある。ただ、このgemが実際どうゆう挙動をするのかググってみてもあまり日本語の情報が見つからなかったので試してみた。 環境 Ruby-2.0.0p353 Rails-4.0.2 dalli-2.7.0 …

active_adminの認証を他のページに設定する方法

active_adminはrailsで定義したモデルを操作するwebインターフェースを数コマンド叩くだけで簡単に定義してくれるお手軽なツールです。まれにあるページに対して認証を定義したい時がありますがactive_adminの認証を簡単に設定する方法があります。認証を設…

事前にprecompileしたassetsをS3に配置してdeployを高速化する方法

Railsで作られているサービスとおもわれるbasecampやgithubはassetsファイルをアプリケーションサーバとは別のCDN(akamaiやCloudFront)サービスから配信している。CDNに配置する事のメリットとして世界中のEdgeサーバからassetsを配信できるのでどこからアク…

active_adminにロック機構を導入する

active_adminをインターネットに公開する場合にアカウントロックを設けたいなぁと思った。いろいろ調べていたらdeviceでアカウントロックを後から追加するの記事がとても参考になりました。 要約するとactive_adminはdeviceという認証フレームワークを使って…

active_adminのassets precompileが失敗する

active_adminのprecompileが失敗する。 環境 Mac OS X 10.8.2 ruby-1.9.3-p125-p194 rails-3.2.11 active_admin-0.5.1 プリコンパイルしてみると.. $ bundle exec rake assets:precompile /Users/hakutoitoi/.rbenv/versions/1.9.3-p194/bin/ruby /Users/hak…

protect_from_forgeryが何をやっているのか調べた

Rails3でCSRF対策としてApplicationControllerにデフォルト指定されるprotect_from_forgeryですが、実際のところ何をやっているのかわからなかったのでコードリーディングしてみたメモ。 環境 Mac OS X 10.8.2 ruby-1.9.3-p125 rails-3.2.9 処理の流れ 0. Ap…

capistrano-unicornでハマった

capistrano-unicornはその名の通りcapistranoでunicornを扱う便利なgemです。 早速Railsのサービスに導入してみた。試した環境は ruby-1.9.3p194 rails-3.2.9 capistrano-2.13.5 capistrano-unicorn-0.1.6 githubの使い方を参考にGemfileに下記を追加してbun…

railsでnamespaceの中にあるModelのObserverの設定方法メモ

RAILS_ROOT/app/model/page/count.rb class Page::Count < ActiveRecord::Base end RAILS_ROOT/app/model/page/count_observer.rb class Page::CountObserver < ActiveRecord::Observer def after_save(model) logger.info "Saved!" end end RAILS_ROOT/conf…

Rails3で1つのアプリケーション内に複数ドメインのサービスを提供させる方法

PCとモバイルでドメインを別にしてサービスを提供することもあると思う。 その場合アプリケーションを別にしてもいいのだがモデルを共有したい場合もある。 そういう時はconfig/routes.rbでconstraints指定をしてrequestされたhost名でコントローラを出し分…

Action Mailerでエクセルを添付する方法

環境 rails 3.2.8 ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0] actionmailer 3.2.8 rails3のaction mailerでメールを送る際にエクセルを添付したいケースがあると思う。 Rails Guideにならって書くとこうなる。 # -*- coding: utf-8 …

turbo-sprockets-rails3を試してみた

Rails3といえばasset pipeline。 賛否両論ありますが僕はそのコンセプトが好きです。 ただ欠点があってCPUの性能が低いマシン(EC2 smallインスタンスなど)ではasset precompileがくそ遅い。 仕事で運用しているあるサイトでは大体150秒くらいかかってしまっ…