Это решение взято из блестящей статьи на http://jasoncodes.com/posts/ruby19-rails2-encodings
Спасибо Джейсону Уэстену за это!
Если вы работаете с Rails 2.3.x, вам нужносоздайте файл config / initializers / utf8_params.rb со следующим содержимым, чтобы решить проблему
raise "Check if this is still needed on " + Rails.version unless Rails.version == '2.3.10'
class ActionController::Base
def force_utf8_params
traverse = lambda do |object, block|
if object.kind_of?(Hash)
object.each_value { |o| traverse.call(o, block) }
elsif object.kind_of?(Array)
object.each { |o| traverse.call(o, block) }
else
block.call(object)
end
object
end
force_encoding = lambda do |o|
o.force_encoding(Encoding::UTF_8) if o.respond_to?(:force_encoding)
end
traverse.call(params, force_encoding)
end
before_filter :force_utf8_params
end
Обязательно ознакомьтесь с другими советами в статье, особенно в отношении магических комментариев в представлениях.Еще раз спасибо Джейсон.