TL; DR - Замена elsif
на else if
подходит для условного задания только с 2 путями. Не забудьте закрыть второе if
условие, созданное с помощью else if
. Лучше всего иметь как можно меньше условных уровней, что делает метод менее сложным. Поэтому соблюдайте осторожность и используйте elsif
.
В зависимости от того, как вы планируете написать свой метод, else if
может работать. Однако это плохая привычка.
Возьмите следующий пример. Есть только 2 условия. Второе условие выглядит как elsif
, но интерпретируется как второй фрагмент кода:
# What you may want to write
if true
puts 'true'
else if false
puts 'false'
end
# How Ruby requires it
if true
puts 'true'
else
if false # You may also do: puts 'false' if false
puts 'false'
end
end
Первый блок будет искать другой end
, чтобы закрыть основное условие. Обратите внимание, вы можете обойти дополнительный конец с помощью одной строки if
. (Я предлагаю это только в том случае, если исполняемый код может быть записан в одну строку.)
Важно отметить, что после того, как вы объявите else
, у вас может не быть других условных обозначений в том же уровне, что и else
. Учитывая второй пример выше, второй if
вложен в else
. Если вы вызовете else
или elsif
на том же уровне, что и начальный else
, условие не выполнится.
Вот когда вы не хотите реализовывать else if
:
def describe(inhabitant)
if inhabitant == "sophie"
puts 'gender: female'
puts 'height: 145'
elsif inhabitant == "paul"
puts 'gender: male'
puts 'height: 145'
elsif inhabitant == "dawn"
puts 'gender: female'
puts 'height: 170'
elsif inhabitant == "brian"
puts 'gender: male'
puts 'height: 180'
else
puts 'species: Trachemys scripta elegans'
puts 'height: 6'
end
end
Обратите внимание, что ни одно из выражений elsif
не может быть «преобразовано» в else if
чистым способом.
ОБНОВЛЕНИЕ : Благодаря Стефану вы все еще можете использовать else if
, что приводит к очень вложенному методу.
Для решения этой проблемы вам необходимо заменить файл C: \ Program Files \ Oracle \ JInitiator xxxxx \ bin \ hotspot \ jvm.dll на версию файла sun.
Вкл. в моей системе версия Sun находится здесь C: \ Program Files \ Java \ jre6 \ bin \ client \ jvm.dll
Да, на данный момент IE8 не сертифицирован для приложений Oracle. Возможно, скоро вы услышите хорошие новости!
У нас похожая проблема.
Я полагаю, что Oracle знает об этом и работает над патчем, который еще не готов.
As Mundit has said, it is still not certified.
Do you have access to Metalink? Note: 760326.1 When Will IE 8 Be Certified With E-Bussines Suite? gives some further information.
Мой коллега посоветовал мне сделать следующее:
Добавить сервер в Надежные сайты, а затем:
У меня работает с приложениями 11i и R12.
Удачи!
One thing to add to Simon's solution. I did the trick on one computer but couldn't repeat it on a second one. Finally, I discovered that replacing the file does not work when using the file jvm.dll from java 6 update 14. It worked fine when I used the jvm.dll file from version 13.
В JINIT есть еще кое-что интересное. Поддержка Oracle была прекращена 31 июля. Возможно, вы захотите подумать о переходе на приложение SUN JPI instad. Сейчас Oracle рекомендует этот путь, и, поскольку JINIT не будет получать обновления, он самый безопасный.
Замена jvm.dll у меня не сработала. Правильный способ переключиться на Java VM от Sun, который сработал для меня, - это изменить этот
baseHTMLjinitiator=basejini.htm
на это
baseHTMLjinitiator=basejpi.htm
в файле formsweb.cfg. IE8 в XP SP3, DEP включен.
Установите последнюю версию JRE из Солнце. Я установил «jre-6u10-windows-i586-ps.exe».
Скопируйте jvm.dll (appx Ver 11.0.0.15 размером 2,25 МБ (2359 296 байт)) из папки «C: \ Program Files \ Java \ jre6 \ bin \ client »и вставьте ее в папку, в которой установлен Jinitiator (расположение по умолчанию), например« C: \ Program Files \ Oracle \ JInitiator 1.3.1.22 \ bin \ hotspot ».
Он будет нормально работать с Браузер IE8.
Спасибо за помощь.
You guys are great! I was pulling my hair off their roots and now got it fixed.
Not sure whether #1 applies to everyone but it was necessary for me. Good Luck! Fouwaaz
Я успешно установил Oracle Forms 10g на Windows7 и получил работающие JPI и Jinitiator.
Шаги
Если вы хотите запускать с помощью Jinitiator