Please help --> Getting error ERROR NoMethodError: private method `gsub!' called for #<Class:0x47a8e38>

[2010-07-21 11:35:18] ERROR NoMethodError: private method `gsub!' called for #<Class:0x47a8e38>         C:/Applns/Ruby187/lib/ruby/1.8/webrick/htmlutils.rb:16:in `escape'         C:/Applns/Ruby187/lib/ruby/1.8/webrick/httpresponse.rb:232:in `set_error'         C:/Applns/Ruby187/lib/ruby/gems/1.8/gems/rails-2.2.3/lib/ webrick_server.rb:94:in `handle_file'         C:/Applns/Ruby187/lib/ruby/gems/1.8/gems/rails-2.2.3/lib/ webrick_server.rb:73:in `service'         C:/Applns/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'         C:/Applns/Ruby187/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'         C:/Applns/Ruby187/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'         C:/Applns/Ruby187/lib/ruby/1.8/webrick/server.rb:162:in `start'         C:/Applns/Ruby187/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'         C:/Applns/Ruby187/lib/ruby/1.8/webrick/server.rb:95:in `start'         C:/Applns/Ruby187/lib/ruby/1.8/webrick/server.rb:92:in `each'         C:/Applns/Ruby187/lib/ruby/1.8/webrick/server.rb:92:in `start'         C:/Applns/Ruby187/lib/ruby/1.8/webrick/server.rb:23:in `start'         C:/Applns/Ruby187/lib/ruby/1.8/webrick/server.rb:82:in `start'         C:/Applns/Ruby187/lib/ruby/gems/1.8/gems/rails-2.2.3/lib/ webrick_server.rb:60:in `dispatch'         C:/Applns/Ruby187/lib/ruby/gems/1.8/gems/rails-2.2.3/lib/ commands/servers/webrick.rb:66         C:/Applns/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ custom_require.rb:31:in `gem_original_require'         C:/Applns/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ custom_require.rb:31:in `require'         C:/Applns/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.2.3/ lib/active_support/dependencies.rb:153:in `require'         C:/Applns/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.2.3/ lib/active_support/dependencies.rb:521:in `new_constants_in'         C:/Applns/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.2.3/ lib/active_support/dependencies.rb:153:in `require'         C:/Applns/Ruby187/lib/ruby/gems/1.8/gems/rails-2.2.3/lib/ commands/server.rb:49         C:/Applns/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ custom_require.rb:31:in `gem_original_require'         C:/Applns/Ruby187/lib/ruby/site_ruby/1.8/rubygems/ custom_require.rb:31:in `require'         script/server:3 127.0.0.1 - - [21/Jul/2010:11:35:18 India Standard Time] "GET / HTTP/ 1.1" 500 338

Write the code here pleZse

Just try to "http://localhost:3000/&quot; after starting the webrick server.

:frowning:

sorry i don't think these lines given below are help full to find out error run "ruby script/server -t" Goto Yours development log file copy all the text and paste all text of that file here

I got invalid option for "-t"

Please check below

ruby script/server -t => Booting WEBrick... server: invalid option: -t => Rails 2.2.3 application started on http://0.0.0.0:3000 => Ctrl-C to shutdown server; call with --help for options [2010-07-21 12:43:28] INFO WEBrick 1.3.1 [2010-07-21 12:43:28] INFO ruby 1.8.7 (2010-01-10) [i386-mingw32] [2010-07-21 12:43:28] INFO WEBrick::HTTPServer#start: pid=2720 port=3000

One more point like I have tried to configure my DB in database.yml.

It was

development:   adapter: sqlite3   database: db/development.sqlite3   pool: 5   timeout: 5000

I changed to

development:   adapter: mysql   database: library_development   username: root   password: *****   host: localhost   pool: 5   timeout: 5000

Any problem with this ?

its yours first application on rails ?

S

:slight_smile:

use instant rails if possible go back on ruby on rails installation again

I am working with railspace social networking application. I did login logout registration process in it but as i am introducing the concept for remember me then stuck in the problem. it is showing the following error.

private method `gsub' called for 4:Fixnum

C:/Users/Amir/Downloads/IR/ruby/lib/ruby/1.8/cgi.rb:342:in `escape' C:/Users/Amir/Downloads/IR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/cgi_ext/cookie.rb:73:in `to_s' C:/Users/Amir/Downloads/IR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/cgi_ext/cookie.rb:73:in `collect' C:/Users/Amir/Downloads/IR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/cgi_ext/cookie.rb:73:in `to_s' C:/Users/Amir/Downloads/IR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/cookies.rb:80:in `set_cookie' C:/Users/Amir/Downloads/IR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/cookies.rb:65:in `=' app/controllers/user_controller.rb:27:in `login'

Please help me out. Any help is appreciated

Thanks

Amir

It is telling you the line that the problem is (line 27 in user_controller.rb, which is a bit odd, I would have expected it to be called users_controller.rb not user_controller.rb), and the error tells you that you are calling gsub, but the object you are calling it on is a number instead of a valid object that understands the method gsub. Have a look at that line. Then if you cannot see the problem have a look at the Rails Guide on debugging for suggestions on how to debug your code.

Colin

Thanks Colin we are calling it as an object. Please find my login code below.

def login if request.get? @user = User.new(:remember_me => cookies[:remember_me] || "0") elsif param_posted?(:user) @user = User.new(params[:user]) user = User.find_by_screen_name_and_password(@user.screen_name, @user.password) if user user.login!(session) if @user.remember_me == "1" cookies[:remember_me] = { :value => "1", :expires => 10.years.from_now }   user.authorization_token = user.id user.save! cookies[:authorization_token] = { (line no. 27) :value => user.authorization_token, (line no. 28) :expires => 10.years.from_now } (line no. 29)   else cookies.delete(:remember_me) cookies.delete(:authorization_token) end flash[:notice] = "User #{user.screen_name} logged in!" redirect_to_forwarding_url else @user.clear_password! flash[:notice] = "Invalid screen name/password combination" end end end

Thanks Colin we are calling it as an object. Please find my login code below.

Which is the line generating the error?

Colin

Error showing in line no. 27

Please find below the error trace

C:/Users/Amir/Downloads/IR/ruby/lib/ruby/1.8/cgi.rb:342:in `escape' C:/Users/Amir/Downloads/IR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/cgi_ext/cookie.rb:73:in `to_s' C:/Users/Amir/Downloads/IR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/cgi_ext/cookie.rb:73:in `collect' C:/Users/Amir/Downloads/IR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/cgi_ext/cookie.rb:73:in `to_s' C:/Users/Amir/Downloads/IR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/cookies.rb:80:in `set_cookie' C:/Users/Amir/Downloads/IR/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/cookies.rb:65:in `=' app/controllers/user_controller.rb:27:in `login'

Thanks Colin

we are calling it as an object. Please find my login code below.

def login

if request.get?

@user = User.new(:remember_me => cookies[:remember_me] || “0”)

elsif param_posted?(:user)

@user = User.new(params[:user])

user = User.find_by_screen_name_and_password(@user.screen_name,

@user.password)

if user

user.login!(session)

if @user.remember_me == “1”

cookies[:remember_me] = { :value => “1”,

:expires => 10.years.from_now }

user.authorization_token = user.id

This is where things go wrong - user.id is not a string.

user.save!

cookies[:authorization_token] = { (line no. 27)

:value => user.authorization_token, (line no. 28)

The cookie value here must be a string - passing in a Fixnum is what’s causing the error. The original RailsSpace code sets the token to a hashed string, not the user’s id.

Regarding RailsSpace: that book is wildly out-of-date (I note that you’re using Rails 2.0.2 from the traces above) and does some things that were extremely questionable even for that time period. For instance, storing passwords in cleartext in the DB is strongly discouraged - it’s led to massive security breaches over the years on other web applications.

Here’s an updated tutorial from the RailsSpace authors, so you’re not learning the 2007 version of the framework:

–Matt Jones