Я пытаюсь портировать по некоторым моим старым приложениям для направляющих к Ruby 1.9, и я продолжаю получать предупреждения о том, как "Ruby 1.9 еще не поддерживает нормализацию Unicode". Я разыскал его к этой функции, но я получаю приблизительно 20 предупреждающих сообщений на запрос:
rails-2.3.5/activesupport/lib/active_support/inflector.rb
def transliterate(string)
warn "Ruby 1.9 doesn't support Unicode normalization yet"
string.dup
end
Какие-либо идеи, как я должен начать разыскивать их и разрешать его?
Если вы знаете о последствиях, то есть акцентированные символы не будут транслитерироваться в Ruby 1.9.1 + Rails 2.3.x, поместите это в config / initializers, чтобы отключить предупреждение:
# http://stackoverflow.com/questions/2135247/ruby-1-9-doesnt-support-unicode-normalization-yet
module ActiveSupport
module Inflector
# Calling String#parameterize prints a warning under Ruby 1.9,
# even if the data in the string doesn't need transliterating.
if Rails.version =~ /^2\.3/
undef_method :transliterate
def transliterate(string)
string.dup
end
end
end
end
Rails 3 действительно решает эту проблему , поэтому более перспективным решением будет переход к этому.
семантически, обе версии оператора удаления в C ++ могут «есть» любой указатель; Однако, если указатель на один объект отдается Удалить [] []
, то Ub приведет к тому, что может произойти что-либо, в том числе сбой системы или вообще ничего.
C ++ требует, чтобы программитор выбрал правильную версию оператора удаления в зависимости от объекта DealLocation: массив или один объект.
Если компилятор может автоматически определить, прошел ли указатель к оператору удаления, был указательным массивом, то будет только один оператор удаления в C ++, что было бы только для обоих случаев.
-121--3473195-Замените тело метода
raise "transliterate called"
и соблюдайте задний корпус, который покажет вам, где на первом вызове. Ваше приложение, конечно, конечно упадет, но, скорее всего, даст вам виновник с первой попытки.
Репостинг моего ответа из здесь
некоторое время назад мне пришлось найти местоположение данного IP. Мы получили IP из запроса. Есть бесплатные базы данных, которые дали нам это отображение. В IPv4, когда мы говорим, что IP как «A.B.c.d», по существу A * (256 ^ 3) + B * (256 ^ 2) + C * (256) + D
.
http://www.aboutmyip.com/aboutmyxapp/ip2integer.jsp
Итак, когда вы хотите, вы хотите IP-адрес, начиная с «A», вы ищете IPS между * 256 ^ 3 и A * 256 ^ 3 + 256 * (256 ^ 2) (B = 256) + 256 * (256) (C = 256) + 256 (d = 256) (нижний / верхний предел может немного варьироваться в зависимости от того, хотите ли вы включить / исключить пределы).
, которые сказали, что есть конкретные IPS, зарезервированные для конкретных целей (например, 127.0.0.1, что является localhost, 0,0.0.0 не может быть IP и т. Д.).
Итак, ваш запрос LINQ будет
from i in iList where i >= MIN && i <= MAX select i;
, где Ilist - ваш начальный список Min - это ваше значение MIN для вашего диапазона Max - это ваше значение для вашего диапазона
-121--924183- Этот метод определения завернут в IF-оператор для Ruby 1.9. Прямо над ним вы найдете регулярное определение, которое показывает немного больше того, что делает это. Это метод, используемый для преобразования акцентированных символов в их регулярные варианты. Например: á
=> A
, или ë
=> E
, но этот метод используется только в параметризе, который в свою очередь прямо выше транслитерировать. Это все еще в ActiveSupport. Я не могу найти ничего, что напрямую называет параметризом.
Так что, возможно, вы используете параметризованные или транслитеры, где-то в приложении Rails?
Общее использование (в соответствии с Параметризованной документацией) предназначена для создания дружественных поправок со стороны произвольных струн, как и, например:
http://stackoverflow.com/questions/2135247/ruby-1-9-doesnt-support-unicode-normalization-yet
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Я понимаю, что это грязный способ решить проблему, но прочитав сообщение об ошибке, я знаю о проблеме. Поэтому я хочу избавиться от предупреждений. Я сбросил этот код в environment.rb:
module ActiveSupport
module Inflector
# Calling String#parameterize prints a warning under Ruby 1.9,
# even if the data in the string doesn't need transliterating.
# Maybe Rails 3 will have fixed it...?
if RAILS_GEM_VERSION =~ /^2\.3/
undef_method :transliterate
def transliterate(string)
string.dup
end
end
end
end