Rails 2.2.2 and globalize - undefined method `render_file' for class `ActionView::Base' (NameError)


#1

Looks like globalize (1.2) is not compatible with rails 2.2.2. I am
getting:

=> Booting Mongrel (use ‘script/server webrick’ to force WEBrick)
=> Rails 2.2.2 application starting on http://0.0.0.0:3003
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3003
** Starting Rails with development environment…
D:/projects/passdate2009/src/vendor/rails/activesupport/lib/
active_support/dependencies.rb:159:in require': undefined methodrender_file’ for class ActionView::Base' (NameError) Exiting from D:/projects/passdate2009/src/vendor/rails/railties/lib/ commands/server.rb:49 from D:/projects/passdate2009/src/vendor/rails/railties/lib/ commands/server.rb:27:inrequire’
from D:/NetBeans/ruby2/jruby-1.1.4/lib/ruby/site_ruby/1.8/
rubygems/custom_require.rb:27:in `require’
from script\server:3

gloablize rewrites render_file (in order to cache templates).
render_file does not more exist, though…

How can this be resolved?

Thx
Clemens


#2

Hi…,

it depends how you installed rails or ruby…!

If you install in drive:c and and trying to run application in drive:D

Then it will give error…

Enjoy and Gud luck

Regards
Hafeez


#3

first:
both on D:

second:
this is IMHO not the problem. As mentioned above:
globalize aliases/overrides render_file (in order to cache
templates).
render_file does not more exist, though…

A somehow equal problem was/is discussed here:
http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/89491f198080e272/fc7642a2f7e2193b

Any hints? Will globalize 1.2 be adopted for Rails 2.2.x?

Thx in advance
Clemens


#4

Clemens,

Rails 2.2 has I18n support built in and you don’t need to use
additional plugins.

Ryan B.
Freelancer
http://frozenplague.net


#5

Rayn,
sounds tempting, BUT my (2 year-old-legacy) app is built on Globalize
and I would prefer to stay with Globalize, at least with this app…
Should I go back to Rails 2.1.x?

Regards
Clemens


#6

Quoting C. removed_email_address@domain.invalid:

Rayn,
sounds tempting, BUT my (2 year-old-legacy) app is built on Globalize
and I would prefer to stay with Globalize, at least with this app…
Should I go back to Rails 2.1.x?

I would suggest yes. I am/was using Globalite and it is incompatible
with
Rails 2.2.2. Almost any internationalization (I18N) package had to
reach deep
inside Rails and change things the new built-in I18N will also be
changing. I
suspect that the immediate problem you were seeing would only be the
first of
many. Lock your app to 2.1.x or start the change to the built-in. I
will be
doing the changes today and will post how hard it was when it’s
completed.

Just my $0.02USD,
Jeffrey


#7

has anybody migrated from Globalize to i8n?


#8

Quoting Jeffrey L. Taylor removed_email_address@domain.invalid:

Rails 2.2.2. Almost any internationalization (I18N) package had to reach deep
inside Rails and change things the new built-in I18N will also be changing. I
suspect that the immediate problem you were seeing would only be the first of
many. Lock your app to 2.1.x or start the change to the built-in. I will be
doing the changes today and will post how hard it was when it’s completed.

This is what I did to migrate from Globalite to Rails 2.2 I18N:

  1. Be sure all tests pass.

  2. Install the latest rails gem:

gem install rails

  1. Update the app:

rake rails:update

This likely modifies config/boot.rb and may update the Javascripts and
may add
scripts to script/ directory.

  1. Uninstall you I18N plugin/gem/package. For me:

script/plugin remove globalite

  1. Watch the I18N Railscast:

http://railscasts.com/episodes/138-i18n

  1. Skim various I18n guides

http://weblog.rubyonrails.org/2008/11/18/new-rails-2-2-i18n-defaults
http://rails-i18n.org/wiki/pages/i18n-rails-guide

  1. Make the translations directory:

mkdir config/locales

  1. Download any needed example translation files from:

http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale

Note: English is built-in, only application specific translations needed
in
config/locales/en.yml, config/locales/en-US.yml, etc.

  1. Check running Rails 2.2 and I18n:

script/console test
Loading test environment (Rails 2.2.2)

I18n.t ‘time.am’
=> “am”

quit

  1. Convert translation calls to I18n.t() and add translations to
    config/locales/en.yml or whatever.

For example, Globalite calls:

:hello.l t(:hello)
:logged_in.l_with_args(:user => ‘Jeff’) t(:logged_in, :user =>
‘Jeff’)

Translation file for above:
en:
hello: “Hello, world!”
user: “{{user}} logged in.”

It took me 2 1/2 hours from start to all automated tests passing. 5
controllers, 12 models, approximately 1400 LOC. Another 10-15 minutes
fixing
things the automated tests didn’t catch.

HTH,
Jeffrey


#9

Quoting C. removed_email_address@domain.invalid:
[snip]

Any hints? Will globalize 1.2 be adopted for Rails 2.2.x?

Check out Globalize2.

Jeffrey


#10

Just a heads up. The Spanish translation on
http://github.com/svenfuchs/rails-i18n/tree/master/rails/locale use
incorrect
or obsolete syntax for plurals. Global search and replace ‘:many’ to
‘:other’ (without the quotes).

Jeffrey

P.S. Bug report e-mailed to Sven F. and the original author of the
file.