"undefined method `gettext'" with ActiveForm
http://www.yotabanana.com/lab/20060913.html
を参考にActiveFormからgettextを使ってみたんですが、上記のエラーが出てしまいました。
色々ソースを追っかけて行くと
vendor/plugins/active_form/lib/action_form.rb
class ActiveForm ・・・ include ActiveRecord::Validations ・・・ end
がロードされた後、gemの方の gettext/lib/active_record.rb
module ActiveRecord module Validations def self.real_included(base) base.extend ClassMethods base.class_eval{ include GetText def gettext(str) #:nodoc: _(str) end ・・・ end ・・・ end end
がロードされるので、ActiveFormがActiveRecord::Validationsをincludeした時点では、real_includedが呼び出されず、ActiveFormがgettext対応されません。
とりあえず、vendor/plugins/active_form/init.rb を
# require 'active_form'
という風にコメントアウトすると、config/environment.rbに書いた require 'gettext/rails' から gettext/lib/active_record.rb が実行され、そのあと必要に応じて vendor/plugins/active_form/lib/action_form.rb がロードされるので、ちゃんとreal_includedでActiveFormが拡張されます。