Мой вопрос заключается в том, что уничтожает \ MongoDB \ BSON \ ObjectID
blockquote>< blockquote>
json_encode
будет кодировать толькоpublic
свойства встречающихся объектов.как я могу заставить его остаться?
blockquote>Вы могли бы передать его в строку перед кодировкой.
Я бы сделал это следующим образом:
require 'uri'
uri = URI.parse('http://something.example.com/directory/')
uri.host.split('.').first
=> "something"
URI встроен в Ruby. Это не самый полнофункциональный, но он достаточно способен выполнять эту задачу для большинства URL-адресов. Если у вас есть IRIs , посмотрите Addressable :: URI .
Вы можете использовать URI, например
uri = URI.parse("http://something.example.com/directory/")
puts uri.host
# "something.example.com"
, и тогда вы можете просто работать на хосте. Или есть жемчуг domainatrix
из Удалите субдомен из строки в ruby
require 'rubygems'
require 'domainatrix'
url = Domainatrix.parse("http://foo.bar.pauldix.co.uk/asdf.html?q=arg")
url.public_suffix # => "co.uk"
url.domain # => "pauldix"
url.subdomain # => "foo.bar"
url.path # => "/asdf.html?q=arg"
url.canonical # => "uk.co.pauldix.bar.foo/asdf.html?q=arg"
, и вы можете просто взять субдомен.
foo.bar/somedir
.
– marcamillion
6 November 2012 в 05:20
Ну, вы можете использовать регулярные выражения. Что-то вроде /http:\/\/([^\.]+)/
, то есть первая группа non '.' письма после http. Проверьте http://rubular.com/ , вы можете проверить свои регулярные выражения на основе набора тестов, это отлично подходит для изучения этого инструмента:)