rails

Rails App でエラー発生時にメールを送ったりするには

ApplicationController に rescue_action なるメソッドを追加して,そこに実装すればよい. class ApplicationController < ActionController::Base def rescue_action(e) HogeMailer.deliver_error(e.backtrace.join("\n")) super end end 最後に super 入…

例外のバックトレースを表示するには

Rails でエラーが発生した時に,何言もなかったかのように Redirect などして,管理者にのみエラーメールを送りたいときがあったとする.そんなときは,backtrace を使う. class SomeController < ApplicationController def hoge # 例外が発生するかもしれ…

HashやArrayなどをデータベースに保存するには

HashやArrayをデータベースの1カラムとして保存したときに,それを元のHashやArrayに戻すには,YAML.load を使う.と言うのも,保存されるときに to_yaml で YAML 化されるので,それを戻せばいいだけの話. item = Item.new hash = {:hoge => "foo", :bar =…

重いクエリーを叩いたときにレスポンスが途切れる問題

一般的な, Apache + mod_proxy_balancer Mongrel Rails という状況で,かなり重いクエリー(200秒前後かかる)を実行すると, Rails のログでは処理が終わってレンダリングされているのを確認 Apache のログでは結果が帰って来ているのを確認(コンテンツの大…

Rails勉強会@東京第32回に参加してきた.

今回はお盆休み中ということもあってか,20名弱と少ない参加人数でした.そう言う私は風邪気味で,ちょっとログを追えていない部分があります(;´Д`). セッションネタ yuguiさんの Redmine RESTful 化 REST の話も含める Java を使って Ruby の Class を書…

ssb Rev.17132 が ubuntu 8.04/Ruby 1.8.6 で動作しなくなってる問題に対処する

変更点は2点. Index: libs/ssb.rb =================================================================== --- libs/ssb.rb (リビジョン 17132) +++ libs/ssb.rb (作業コピー) @@ -40,7 +40,7 @@ ['response is nil', 'N/A'] when ssb_response.instance_of…

開発環境でPassengerを使うには

環境変数 RAILS_ENV を設定する必要があるので, VirtualHostの設定(/etc/apache2/sites-enabled/000-default) RailsAutoDetect off <VirtualHost *> DocumentRoot /var/www RailsBaseURI /rails RailsEnv development </VirtualHost>などとしておく.設定内容は以下のような感じ. RailsE…

Passengerをインストールしてみる

Passengerで動かすことを想定して,ローカル環境にもインストールしてみる. % sudo gem install passenger % sudo /var/lib/gems/1.8/bin/passenger-install-apache2-module Welcome to the Phusion Passenger Apache 2 module installer, v2.0.2. This ins…

OpenIDを使ったユーザ認証の実験

ruby-openidを使ってみることに. % ruby script/generate openid_login openid create lib/openid_login_system.rb create app/controllers/openid_controller.rb create test/functional/openid_controller_test.rb create app/helpers/openid_helper.rb c…

Rails勉強会@東京第31回に参加してきた.

先月は RubyKaigi 会場での開催となったので,2ヶ月ぶりの開催です.主催の皆さまありがとうございます.そしてまとめログを. 時間割 13:30〜14:45 前半セッション named_scope 詳しく Redmineの半歩先 Scaffoldの半歩先 15:00〜16:15 後半セッション Rails…

RubyKaigi2008に参加してきました.

0th dayは仕事だったので参加できませんでしたが,あとは朝からがっつり参加してました.ログと感想は明日書きます....orz(ブログ書くまでがRubyKaigi orz)

Redmineを入れてみた.

と言うわけでインストールログ. ダウンロード ここから0.7.1をダウンロード. インストール 適当なディレクトリに展開して,データベース設定. % tar zxvf redmine-0.7.1.tar.gz % cd redmine-0.7.1 % cp config/database.yml.example config/database.yml…

全てのモデルにbefore_findを追加するには#2(find_by_*)

Model.find_by_name などでも before_find したい場合には, class Human < ActiveRecord::Base self.abstract_class = true class << self def find(*params) puts "before_find" super end def method_missing(method_id, *arguments) if match = /^find_(…

全てのモデルに before_find を追加するには

下記のようなに,抽象モデルを上位に作り,それを継承する感じにする. class Human < ActiveRecord::Base self.abstract_class = true class << self def find(*params) puts "before_find" super end end end class Person < Human end すると, >> Person…

Rails勉強会@東京第30回に参加してきた#2

さて続きを.と言うか,松田さんのPPで十分な気がしますが,とりあえずログを.

Rails勉強会@東京第30回に参加してきた#まとめ

まとめと感想をば. まとめ script/console で再読込できるとは知らなかった.これでかなり作業効率あがるかな. Rails 2.1では変わってるところが多いので,2.0だけじゃなくて,ちゃんと追っておかないといかんぽい. メール受信に関しては,やはり Rails …

Rails勉強会@東京第30回に参加してきた#1

いつものように,まとめログを. セッション一覧 前半 scaffold 半歩先へ Redmine & git/github & ActiveRecord without Rails OpenID 後半 Rails 2.1の新機能 Agile Web Development with Rails 3rd editionを読んでみる Passenger(mod_rails) Redmine & gi…

Railsのscript/consoleで便利な技(?)

まあ知らなかっただけなのですが....今日のRails勉強会で知った便利な技のログを. 変更の再ロード >> reload! なんだこれだけでよかったのかorz.ずっと再起動してたよ.... consoleにログをだす >> ActiveRecord::Base.logger = Logger.new($stderr)…

ActiveRecordでSQLを直接実行する方法

何か適当なモデルとデータベースへの接続を定義して, class User < ActiveRecord::Base end User.connection.execute("UPDATE users SET status = 1;") などとする.これだとBEGIN/COMMITなどActiveRecordが勝手にやってくれる処理が入らずに,ActiveRecord…

Rails勉強会@東京第29回に参加してきた#2

結構長くなるんで,ログの続きを分割. rake taskを見てみる

Rails勉強会@東京第29回に参加してきた

参加してきました.とりあえず書いてあったログと感想を. セッション一覧 前半 Scaffold++ ログローテートと運用関係について git + Facebook ここに参加 後半 Passenger(mod_rails) rake taskを見る ここに参加 その他 RubyKaigi会議

BackgrounDRbでLoggerを使うときの注意点の覚書

Workerの方でLogger.infoなどとログを出力してると,どうもファイルが開きっぱなしになるようだ.なもんで,Workerでファイルの読み書きなどしていると,[Too many open files]なるエラーが出てしまう.対処としては, logger = Logger.new(RAILS_ROOT + "/l…

Rails環境を持った状態でdaemon化する方法

ひとまずログとして.参考にしたのは,http://snippets.dzone.com/posts/show/2265です.基本部分はそのまま,必要な部分だけ書き換えました. # Post-process of MessageSender require 'optparse' require 'fileutils' module TinyDaemon # Default option…