Вы абсолютно не можете надежно проверить, есть ли подключение к Интернету или нет (я предполагаю, что вы имеете в виду доступ в Интернет).
Вы можете, однако, запросить ресурсы, которые практически никогда не работают в автономном режиме , например, pinging google.com или что-то подобное. Я думаю, что это будет эффективно.
try {
Ping myPing = new Ping();
String host = "google.com";
byte[] buffer = new byte[32];
int timeout = 1000;
PingOptions pingOptions = new PingOptions();
PingReply reply = myPing.Send(host, timeout, buffer, pingOptions);
return (reply.Status == IPStatus.Success);
}
catch (Exception) {
return false;
}
Метод y
- удобный способ получить красивый вывод YAML.
y ProductColor.all
Предполагая, что вы используете скрипт / консоль
Как прокомментировал jordanpg, этот ответ устарел. Для Rails 3.2+ вам необходимо выполнить следующий код, прежде чем вы сможете заставить работать метод y
:
YAML::ENGINE.yamler = 'syck'
Из ruby-docs
В старых версиях Ruby, т.е. <= 1.9, Syck по-прежнему предоставляется, был полностью удален с выпуском Ruby 2.0.0.
Для rails 4 / ruby 2 можно было использовать только
puts object.to_yaml
Попробуйте hirb . Это жемчужина, предназначенная для красивого форматирования объектов в консоли Ruby. Ваш сеанс скрипта / консоли будет выглядеть следующим образом:
>> require 'hirb'
=> true
>> Hirb.enable
=> true
>> ProductColor.first
+----+-------+---------------+---------------------+---------------------+
| id | name | internal_name | created_at | updated_at |
+----+-------+---------------+---------------------+---------------------+
| 1 | White | White | 2009-06-10 04:02:44 | 2009-06-10 04:02:44 |
+----+-------+---------------+---------------------+---------------------+
1 row in set
=> true
Вы можете узнать больше о hirb на его домашней странице .
Возможно, вы захотите определить метод проверки ProductColor, чтобы он возвращал то, что вам нравится. Например:
def inspect
"<#{id} - #{name} (#{internal_name})>"
end
После чего результат ProductColor.all будет отображаться как что-то вроде [<1 - White (White)>, ...]. Конечно, вам следует настроить метод проверки в соответствии с вашими потребностями, чтобы он отображал всю необходимую информацию в удобном для вас стиле.
Изменить: также, если проблема заключалась в отсутствии разрывов строк в выводе, вы можете попробовать
require 'pp'
pp ProductColor.all
, который должен вставлять перенос строки, где это необходимо