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/" 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:

http://ruby.railstutorial.org/?railsspace=1

–Matt Jones