Undefined method `^' for "d":String

Hi guys.

I’m a freshman on Rails (and Ruby) so I’m sorry if my question is
pretty basic, and possible has a vary basic answer. I tried to Google
this problem, but a couple of hour after and no solution found, I
decided to ask for help here.

I have installed ruby 1.9.1p243, Rails 2.3.4, Gem 1.3.5, SQLite
version 3.6.18 (I think this is all that it’s needed).
I´m reading and implementing simultaneously Depot sample app presented
in the book Agile Web D. with Rails. After creating the Model
(just a simple table Products) and generating the controller and views
through the generate script with scaffolding enabled, and applying the
respective migration to the database (SQLite), when I access the
default action on Products controller (index), I get the following
error:


Showing app/views/layouts/products.html.erb where line #12 raised:

undefined method `^’ for “d”:String

Extracted source (around line #12):

9:
10:
11:
12:

<%= flash[:notice] %>


13:
14: <%= yield %>
15:

RAILS_ROOT: C:/lfalcao/Work/Dev/Ruby/Rails/Depot
Application Trace | Framework Trace | Full Trace

C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/
lib/active_support/message_verifier.rb:46:in block in secure_compare' C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/ lib/active_support/message_verifier.rb:45:ineach’
C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/
lib/active_support/message_verifier.rb:45:in secure_compare' C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/ lib/active_support/message_verifier.rb:28:inverify’
C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/
action_controller/session/cookie_store.rb:156:in unmarshal' C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/ action_controller/session/cookie_store.rb:145:inload_session’
C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/
action_controller/session/abstract_store.rb:62:in block in load!' C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/ action_controller/session/abstract_store.rb:70:instale_session_check!’
C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/
action_controller/session/abstract_store.rb:61:in load!' C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/ action_controller/session/abstract_store.rb:28:in[]’
C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/
action_controller/flash.rb:163:in flash' C:1:inflash’
C:/lfalcao/Work/Dev/Ruby/Rails/Depot/app/views/layouts/
products.html.erb:12:in
_run_erb_app47views47layouts47products46html46erb' C:/lfalcao/Work/Dev/Ruby/Rails/Depot/app/controllers/ products_controller.rb:7:inindex’

This is the default view generated. I haven’t touched it yet. What is
this problem? Do I need to install something else? Am I doing anything
wrong?
I’m sorry if this is a basic one, but I tried everything (which is
very little) I know. Anybody can help me?

Thanks!

On Sep 12, 5:00 pm, LF [email protected] wrote:

This is the default view generated. I haven’t touched it yet. What is
this problem? Do I need to install something else? Am I doing anything
wrong?
I’m sorry if this is a basic one, but I tried everything (which is
very little) I know. Anybody can help me?

It’s a bug in rails:
https://rails.lighthouseapp.com/projects/8994/tickets/3144-undefined-method-for-string-ror-234

The change in question was a security fix - for the purpose of
learning rails you could revert to rails 2.3.3 without ill effect
(make sure you have that version of the gem installed and set
RAILS_GEM_VERSION in environment.rb)

Fred

Thanks Fred. That solved my problem.
I Installed version 2.3.3 and then I had to rebuild the application
from scratch, because only changing the variable RAILS_GEM_VERSION in
environment.rb, still gave me the error pasted bellow, of a missing
method, I guess, when I started the WEBrick server.
Then I rebuilt the application with for the version 2.3.3 and all
works fine.

Thanks again


=> Booting WEBrick
=> Rails 2.3.3 application starting on http://0.0.0.0:3000
C:/lfalcao/Work/Dev/Ruby/Rails/Depot1/config/initializers/
new_rails_defaults.rb:14:in <top (require d)>': undefined method generate_best_match=’ for
ActionController::Routing:Module (NoMethodError)
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
activesupport-2.3.3/lib/active_support/
dependencies.rb:145:in load' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ activesupport-2.3.3/lib/active_support/ dependencies.rb:145:in block in load_with_new_constant_marking’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
activesupport-2.3.3/lib/active_support/
dependencies.rb:521:in new_constants_in' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ activesupport-2.3.3/lib/active_support/ dependencies.rb:145:in load_with_new_constant_marking’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
rails-2.3.3/lib/initializer.rb:622:in block in load_application_initializers' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ rails-2.3.3/lib/initializer.rb:621:in
each’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
rails-2.3.3/lib/initializer.rb:621:in load_application_initializers' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ rails-2.3.3/lib/initializer.rb:176:in
process’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
rails-2.3.3/lib/initializer.rb:113:in run' from C:/lfalcao/Work/Dev/Ruby/Rails/Depot1/config/ environment.rb:9:in<top (required)>’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
activesupport-2.3.3/lib/active_support/
dependencies.rb:156:in require' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ activesupport-2.3.3/lib/active_support/ dependencies.rb:156:in block in require’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
activesupport-2.3.3/lib/active_support/
dependencies.rb:521:in new_constants_in' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ activesupport-2.3.3/lib/active_support/ dependencies.rb:156:in require’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
rails-2.3.3/lib/commands/server.rb:84:i
n <top (required)>' from script/server:3:in require’
from script/server:3:in `’


On Sep 12, 5:18 pm, Frederick C. [email protected]

I confirm that just replacing RAILS_GEM_VERSION outputs the same
error.

Is there a workaround for this ?

Thanks Fred. That solved my problem.
I Installed version 2.3.3 and then I had to rebuild the application
from scratch, because only changing the variable RAILS_GEM_VERSION in
environment.rb, still gave me the error pasted bellow, of a missing
method, I guess, when I started the WEBrick server.
Then I rebuilt the application with for the version 2.3.3 and all
works fine.

Thanks again


=> Booting WEBrick
=> Rails 2.3.3 application starting on http://0.0.0.0:3000
C:/lfalcao/Work/Dev/Ruby/Rails/Depot1/config/initializers/
new_rails_defaults.rb:14:in <top (require d)>': undefined method generate_best_match=’ for
ActionController::Routing:Module (NoMethodError)
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
activesupport-2.3.3/lib/active_support/
dependencies.rb:145:in load' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ activesupport-2.3.3/lib/active_support/ dependencies.rb:145:in block in load_with_new_constant_marking’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
activesupport-2.3.3/lib/active_support/
dependencies.rb:521:in new_constants_in' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ activesupport-2.3.3/lib/active_support/ dependencies.rb:145:in load_with_new_constant_marking’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
rails-2.3.3/lib/initializer.rb:622:in block in load_application_initializers' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ rails-2.3.3/lib/initializer.rb:621:in
each’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
rails-2.3.3/lib/initializer.rb:621:in load_application_initializers' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ rails-2.3.3/lib/initializer.rb:176:in
process’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
rails-2.3.3/lib/initializer.rb:113:in run' from C:/lfalcao/Work/Dev/Ruby/Rails/Depot1/config/ environment.rb:9:in<top (required)>’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
activesupport-2.3.3/lib/active_support/
dependencies.rb:156:in require' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ activesupport-2.3.3/lib/active_support/ dependencies.rb:156:in block in require’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
activesupport-2.3.3/lib/active_support/
dependencies.rb:521:in new_constants_in' from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/ activesupport-2.3.3/lib/active_support/ dependencies.rb:156:in require’
from C:/Ruby/Ruby1.9.1-p243/lib/ruby/gems/1.9.1/gems/
rails-2.3.3/lib/commands/server.rb:84:i
n <top (required)>' from script/server:3:in require’
from script/server:3:in `’


On Sep 12, 5:18 pm, Frederick C. [email protected]

On Oct 5, 8:58 pm, benoror [email protected] wrote:

I confirm that just replacing RAILS_GEM_VERSION outputs the same
error.

Is there a workaround for this ?

you could remove the corresponding line from new_rails_defaults.rb -
sounds like the version 2.3.4 generates by default contains an option
that only exists from rails 2.3.4 onwards.

Fred