rails
RubyにDOS攻撃の脆弱性が発見されたようです。Riding Rails: DoS Vulnerability in Ruby DoS vulnerability in BigDecimal どんな脆弱性か BigDecimalからFloatに変換する部分に問題があるらしく、下記のように、大きい数値をRubyにパースさせることでDOS攻…
今日たまたまRailsのリファレンスを眺めていて見つけたのですが。下記のようなBlogモデルとEntryモデルがあるとします。 class Blog < ActiveRecord::Base has_many :entries end class Entry < ActiveRecord::Base belongs_to :blog end Blogモデルのインス…
最近script/consoleをすると下記のような警告がでるようになっていました。 irb: warn: can't alias context from irb_context.起動時に警告が出る以外は特に支障はないのでしばらく放置していたのですが、今日やる気が出たので原因を調査してみました。する…
flashに入れたオブジェクトは、「次のアクションまで有効」だったはずなのですが、Rails2.3からは「次にflashにアクセスされるまで有効」に変更になっているようです。 例 下記のようなコントローラで、indexアクションにアクセスすると、index2を経由してin…
引数が多くて複数行にまたがるコードがあるとき、ruby-modeのインデントだと下記のようにちょっとみづらい感じになります。 validates_length_of :email, :within => 6..100 , :allow_blank => true, :too_long => "メールアドレスは100文字以内で入力してく…
Railsのドキュメントを閲覧する時に、これまではこのグリモンを使っていてそれなりに快適だったのだけれど、下記のエントリで紹介されているドキュメントがそれを上回る快適ぶりで驚いた。検索のレスポンス早い!RailsのAPIをスマートに調べられるRails Sear…
積読が多いので本を買うのは控えようと思っているのですが・・・これは買わざるをえないですね。Railsデプロイposted with amazlet at 09.03.20Ezra Zygmuntowicz Bruce A. Tate Clinton Begin オライリージャパン 売り上げランキング: 15474Amazon.co.jp で…
Rails2.3のRack統合でActionController::AbstractRequestがActionController::Requestに統合されたのが原因だった模様。下記のように書き換えて対処。 module OAuth::RequestProxy #:nodoc: all class ActionControllerRequest < OAuth::RequestProxy::Base …
Passengerの2.1.2がリリースされてました。バージョン2.1.2以前のものはRails2.3に対応していないとのことなので、Rails2.3を使う人はアップデート必須ですね。Phusion Passenger 2.1.2 (final) released « Phusion Corporate Blog
いつの間にかscript/generateのGeneratorにresourceなるものが増えていました。 script/generate resource blog などとすると、 script/generate controller blogs script/generate model blog config/routesにmap.resources :blogsを追加 と同じことをして…
特に大きな問題なく移行できました。 やったこと config/environment.rbを下記のように変更。 # RAILS_GEM_VERSION = '2.2.2' unless defined? RAILS_GEM_VERSION RAILS_GEM_VERSION = '2.3.1' unless defined? RAILS_GEM_VERSION 下記のrakeコマンドでappli…
memcachedで快速アプリケーション − @IT上記の記事で、こんなことが書いてありました。 以下に、Railを使用する際に用いられる一般的なパフォーマンス向上方法を紹介しよう。O/Rマッパーを介さずに直接SQL文を発行する →ActiveRecord::Base::find_by_sqlメ…
sudo port install mysql5 +server sudo -u mysql mysql_install_db5 /opt/local/lib/mysql5/bin/mysqladmin -u root password 'hogehoge' sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo gem install mysql --with-mysql-c…
Ruby on Rails 2.3 Release Noteの1.2ではRails Enginesについて書かれています。昔からあった機能なようですが、僕は先日のRails勉強会でこれを読んで初めて存在を知りました。Release Noteには、Rails Enginesは「RailsアプリにRailsアプリを埋め込める機…
Rails勉強会@東京第38回に参加した(その1)に続いてその2です。後半セッションはrails2.3.0をほげるセッションに参加しました。基本的にはRails2.3.0のリリースノートに沿って、Rails2.3.0に何が追加されたかを確認する流れでした。なので以下のメモはほとん…
今日は、Rails勉強会@東京第38回に参加しました。Rails勉強会@東京38回前半はRspecとCucumberについて、後半はRails2.3.0についてのセッションに参加しました。とりあえず今日は前半セッションのメモを上げておきます。後半は明日。 RspecとCucumberについて…
Rails2.3のRelease Candidateである2.3.0がリリースされました。下記のコマンドでインストールできます。 gem install rails --source http://gems.rubyonrails.org Riding Rails: Rails 2.3.0 RC1: Templates, Engines, Rack, Metal, much more!
Railsの2.1あたりからタイムゾーンのサポートがされるようになっています。RAILS_ROOT/config/environment.rbにて config.time_zone = 'UTC' の'UTC'部分をいじることによりタイムゾーンの設定が出来ます。日本国内オンリーでアプリを作る場合は、 config.ti…
Riding Rails: This Week in Edge Rails上記の記事を意訳したのでメモ。 トランザクションをネスト トランザクションをネストできるように。 ネストする時は:require_newオプションが必要。オプション指定がないと親のトランザクションの一部と見なされる。 …
emacsでRails開発をする際、emacs-railsを使っている方が多いと思います。emacs-railsはとても便利なelispなのですが、最近は更新頻度が低く、rhtml→html.erbの対応も一部されていなかったりします。あとRspecの対応もイマイチ。emacs使いの人たちは一体どう…
先日webrickのソースを少し読んだのですが、daemonを作る部分がよくわかりませんでした。 def Daemon.start exit!(0) if fork Process::setsid exit!(0) if fork Dir::chdir("/") File::umask(0) STDIN.reopen("/dev/null") STDOUT.reopen("/dev/null", "w")…
下記の文章はRiding Rails: This Week in Edge Railsをざっくり翻訳したメモです。かなり適当に訳しているので間違え等あればご指摘お願いします>< Rack integration script/serverがrackを通すようになって、rackで使えるサーバを使えるようになる。扱え…
これまでrails上でのバッチ処理はscript/runnerを使って以下のようなコマンドで実行していました。 script/runner "eval(IO.readlines('hoge.rb').join)" でもこれ長いですよね。もっと短くする方法はないかなーと思ってscript/runner --helpしたら「こんな…
自宅で使っているサーバでscript/consoleをしたらエラーが出ました。 no such file to load -- readline (LoadError) どうやらreadlineを入れてなかったよう。でもirbは動いたのでなんだろうなーと思い調べたら、 また, irb は readline ライブラリにも対応…
今日は三鷹産業プラザで行われたAward on Rails の表彰式に行ってきました。 僕も今回出したのですが、完成度低かったのでだめでしたね(完成度低いのでURLは載せません><)。次回は受賞できるようにがんばります! というわけで受賞作品のメモ。 マイクロソ…
Rails2.2にしたらopen_id_authenticationを使った認証でエラー。なんでだろうなーと思い調べたら、いつの間にかgithubでリポジトリ管理するようになっていたんですね。もともとあったやつを消して、以下のようにインストールして解決。 script/plugin install…
Rails2.1系のwebサービスを公開している方は注意。Riding Rails: Potential Circumvention of CSRF Protection in Rails 2.1どういう事かというと、 通常、RailsはCSRFを防ぐために、フォームにtokenを自動で埋め込みリクエスト受付時に認証を行っています。…
最近はgithubやcodereposなどの共有レポジトリが流行っています(?)ね。僕はまだコミットした事はないのですが、パスワードなどの秘密の情報が存在するアプリケーションをコミットするときにはどのように秘密部分を加工しているのだろうなー?とずっと疑問に…
Rubyのブロックの記述方法にはdo...endと{...}の2種類があります。僕は基本的にRubyコーディング規約を参考にしてRubyコードを書いているのでdo...end派なのですが、Railsのnamed_scopeをこんな風に書いたらエラーがでました named_scope :hoge, lambda do …
railsのproduction.logなどをローテーションする一般的な方法、logrotateについてのメモ書きです。 基本 /etc/logrotate.confにデフォルトの設定 /etc/logrotate.d/配下に個別の設定を書く 利用できるディレクティブ(の一部) daily or weekly or monthly ロ…