6/05/2008

Gettext 在 Rails 2.1 下面的問題

Gettext 1.19 遇到 Rails 2.1 會發生以下的問題
NoMethodError (undefined method `file_exists?' for #):


解決方式就是寫一個 config/initializers/gettext.rb

require 'gettext/rails'
module ActionView
class Base
delegate :file_exists?, :to => :finder unless respond_to?(:file_exists?)
end
end



重起即可。

3 則留言:

tsechingho 提到...

昨天把程式更新到 2.1 也有遇到這個問題,也是這樣解決。
不過最好在 environment.rb 中也改用 2.1 的方式:

Rails::Initializer.run do |config|
config.gem "gettext", :lib => "gettext/rails"
end

如果你還是想用 require 來用 gettext 的話,要把敘述放在 initializer 前才不會有找不到 before_init_gettext 的問題。

require "gettext/rails"
Rails::Initializer.run do |config|
......
end

thegiive 提到...

不幸的,我用你的方式是不 work
Maybe 你可以給我更詳細的 introduction ?

tsechingho 提到...

oops, 可能是我沒敘述好
所以你有遇到找不到 before_init_gettext 的問題?以下是我用的 environment.rb 內容

RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION
require File.join(File.dirname(__FILE__), 'boot')
Rails::Initializer.run do |config|
config.gem "gettext", :lib => "gettext/rails"
config.gem "mislav-will_paginate", :lib => "will_paginate", :source => "http://gems.github.com", :version => ">= 2.3.2"
config.time_zone = 'UTC'
config.action_controller.session = {略}
config.active_record.observers = :user_observer
end

如果是指 file_exists? 的問題,還是得用你文章裡說得方法。