rails

migration で blob の代わりに longblob を使わせる

migration で ↓ のように :binary を指定していたら、mysql では blob 型になっていた。 class Init < ActiveRecord::Migration def self.up create_table :articles do |t| t.column :data, :binary end end endblob じゃなくて longblob を使いたいんだけ…

Association extensions を block で指定して gettext updatepo を行うとエラーになる

↓ のようなテーブルがあるとします +---------+ +----------+ | authors | --------- | articles | +---------+ 1 N +----------+で ActiveRecord は ↓ のように Association extensions を使ったもの。 class Author < ActiveRecord::Base has_many :articl…

ActionController の verify と :xhr => true を指定したときの TestCase

ActionController には verify というクラスメソッドがあります。「request.method は :post か?」とか「params に :id が含まれているか?」といった検査を :only, :except に該当する action の実行前に行ってくれるものです。update_name という action で…

script/console で URL がどんな params に認識されるかを確かめる

まず config/routes.rb が次のような内容になっているものとします。 ActionController::Routing::Routes.draw do |map| map.connect 'date/:year/:month/:day', :controller => 'blog', :action => 'by_date', :month => nil, :day => nil map.connect ':co…

gettext/rails のロケール決定方法を変える

require 'gettext/rails' を使う場合、gettext のロケール情報は「ブラウザからのアクセスとCookieへの情報格納」にあるように params[:lang], cookies[:lang], HTTP_ACCEPT_LANGAUGE, "en" の順番に参照され決定されます。これを params[:lang], cookies[:l…

rake doc:app で生成される html の文字化けを解消させる

rake doc:app と実行すると app/**/*.rb に記述した RDoc 形式のコメントからドキュメントを生成してくれます。が、ここに日本語を書いて生成させると html が化けてしまいます。Rakefile に以下のコードを書き足して回避しました。ついでに public method …

Debian sarge ruby1.8 1.8.2-7sarge4 で mongrel_rails を動かす

mongrel はインストールに ruby 1.8.4 を要求してきて sarge ではインストール出来ません。 $ sudo gem install -r mongrel ... ERROR: While executing gem ... (RuntimeError) mongrel requires Ruby version >= 1.8.4mongrel は 1.8.3 から利用可能になっ…

gettext/utils があると rake doc:app が失敗する

気づいたら rake doc:app が失敗するようになっていた。 $ rake doc:app rm -r doc/app rake aborted! uninitialized constant AlreadyDefinedToken (See full trace by running task with --trace)調べてみると lib/tasks/gettext.rake に gettext 用のタス…