Created
July 11, 2010 16:42
-
-
Save metaskills/471663 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if Rails.version == '2.3.8' && Gem.available?('mongrel', Gem::Requirement.new('~>1.1.5')) && self.class.const_defined?(:Mongrel) | |
# Pulled right from latest rack. Old looked like this in 1.1.0 version. | |
# | |
# def [](k) | |
# super(@names[k] ||= @names[k.downcase]) | |
# end | |
# | |
module Rack | |
module Utils | |
class HeaderHash < Hash | |
def [](k) | |
super(@names[k]) if @names[k] | |
super(@names[k.downcase]) | |
end | |
end | |
end | |
end | |
# Code pulled from the ticket above. | |
# | |
class Mongrel::CGIWrapper | |
def header_with_rails_fix(options = 'text/html') | |
@head['cookie'] = options.delete('cookie').flatten.map { |v| v.sub(/^\n/,'') } if options.class != String and options['cookie'] | |
header_without_rails_fix(options) | |
end | |
alias_method_chain :header, :rails_fix | |
end | |
# Pulled right from 2.3.8 ActionPack. Simple diff was | |
# | |
# if headers.include?('Set-Cookie') | |
# headers['cookie'] = headers.delete('Set-Cookie').split("\n") | |
# end | |
# | |
# to | |
# | |
# if headers['Set-Cookie'] | |
# headers['cookie'] = headers.delete('Set-Cookie').split("\n") | |
# end | |
# | |
module ActionController | |
class CGIHandler | |
def self.dispatch_cgi(app, cgi, out = $stdout) | |
env = cgi.__send__(:env_table) | |
env.delete "HTTP_CONTENT_LENGTH" | |
cgi.stdinput.extend ProperStream | |
env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/" | |
env.update({ | |
"rack.version" => [0,1], | |
"rack.input" => cgi.stdinput, | |
"rack.errors" => $stderr, | |
"rack.multithread" => false, | |
"rack.multiprocess" => true, | |
"rack.run_once" => false, | |
"rack.url_scheme" => ["yes", "on", "1"].include?(env["HTTPS"]) ? "https" : "http" | |
}) | |
env["QUERY_STRING"] ||= "" | |
env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"] | |
env["REQUEST_PATH"] ||= "/" | |
env.delete "PATH_INFO" if env["PATH_INFO"] == "" | |
status, headers, body = app.call(env) | |
begin | |
out.binmode if out.respond_to?(:binmode) | |
out.sync = false if out.respond_to?(:sync=) | |
headers['Status'] = status.to_s | |
if headers['Set-Cookie'] | |
headers['cookie'] = headers.delete('Set-Cookie').split("\n") | |
end | |
out.write(cgi.header(headers)) | |
body.each { |part| | |
out.write part | |
out.flush if out.respond_to?(:flush) | |
} | |
ensure | |
body.close if body.respond_to?(:close) | |
end | |
end | |
end | |
end | |
end |
Eduardo, what does E:/webSAS/webSAS/vendor/plugins/recode_legacy_database/lib/recode_legacy_database.rb line 36 look like?
is a plugin that work with encoding utf-8 to iso, its useful for use rails with sqlserver old versions. it converts caracters encoding when saving and loading data from database to ensure that special caracters will be displayed correctly.
fixed problem removing recode_legacy_database, but now trying to solve utf-8 x sqlserver encoding problem
thnks for the tip
thanks a lot. Working for rails 2.3.14 too.
Worked for me in 2.3.14 as well. Thanks so much!
Thanks a lot! Worked for me in 2.3.15.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
im using rails 2.3.10 placed file in config/initializers/mongrel.rb and include version 2.3.10, but still having error:
undefined method `[]' for nil:NilClass
Application trace:
E:/webSAS/webSAS/vendor/plugins/recode_legacy_database/lib/recode_legacy_database.rb:36:in
after_initialize' C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/callbacks.rb:347:in
send'C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/callbacks.rb:347:in
callback' C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/base.rb:1691:in
send'C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/base.rb:1691:in
instantiate' C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/base.rb:665:in
find_by_sql'C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/base.rb:665:in
collect!' C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/base.rb:665:in
find_by_sql'C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/base.rb:1582:in
find_every' C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/base.rb:1539:in
find_initial'C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/base.rb:617:in
find' C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/base.rb:1914:in
find_by_login'C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/base.rb:1919:in
send' C:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.10/lib/active_record/base.rb:1919:in
method_missing_without_paginate'E:/webSAS/webSAS/vendor/plugins/will_paginate/lib/will_paginate/finder.rb:164:in
method_missing' E:/webSAS/webSAS/app/models/user.rb:76:in
authenticate'E:/webSAS/webSAS/app/controllers/sessions_controller.rb:9:in `create'
Can anyone help?
Thanks in advance
Eduardo