Как настроить «Приложение / LD + JSON» Schema.org Meta Data в приложении Rails 4 -- ruby поле с участием ruby-on-rails-4 поле с участием metadata поле с участием schema.org поле с участием json-ld пол Связанный проблема

How to setup “application/ld+json” schema.org meta data in rails 4 app


11
vote

проблема

русский

Я хочу настроить метаданные Schema.org с помощью JSON LD. Например, следующая ссылка использует Ghost, и она имеет «приложение / LD + JSON» Meta Data. http://blog.ghost.org/distribed-team-tools/

Я хочу достичь подобного приложения для моих рельсов. Как я должен реализовать это. Есть ли драгоценный камень для этого и т. Д.

Спасибо!

Английский оригинал

I want to setup schema.org metadata using json ld. for example following link uses ghost and it has "application/ld+json" meta data. http://blog.ghost.org/distributed-team-tools/

I want to achieve similar for my rails app. How should I implement it. is there some gem for doing this etc.

Thanks!

</div
              

Список ответов

11
 
vote
vote
Лучший ответ
 

Есть JSON-LD GEM ( http://rubygems.org/gems/json-ld ), Но это может быть не конкретно то, что вы ищете. Обратите внимание, что точка JSON-LD заключается в том, что в этом случае это просто JSON, в этом случае с использованием контекста Schema.org для интерпретации значений. Предполагая, что ваши данные находятся в моделях Activerecord, вам понадобится способ убедиться, что свойства записи соответствуют соответствующим свойствам Schema.org. Если это было так, то просто сериализация вашей модели к JSON (#to_JSON) дает вам большую часть пути там. Что остается - это добавить <код> @context , <код> @id и <код> @type поля на json.

Например, скажем, у вас есть пользовательская модель, которая для которого сериализована для чего-то вроде следующее:

 <код> {   "name": "Harry",   "email": "Harry@example.org" }   

как "name" и "электронная почта" свойства http://schema.org/person , вы могли бы получить там Просто добавляя <код> @context и <код> @type следующим образом:

 <код> {   "@context": "http://schema.org/",   "@type": "Person",   "name": "Harry",   "email": "Harry@example.org" }   

Предполагается, что вы создаете спокойное приложение, это хорошая практика, чтобы дать каждому объекту @id , который соответствует URL ресурса для этого человека. Это может быть похоже на следующее:

 <код> {   "@context": "http://schema.org/",   "@id": "http://example.com/people/harry",   "@type": "Person",   "name": "Harry",   "email": "Harry@example.org" }   

Теперь, если вы вернете http://example.com/people/harry как json (или json-ld), Вы можете вернуть это представление.

Другая вещь о JSON-LD заключается в том, что он для «связанных данных», поэтому, включая ссылки на другие ресурсы, полезны для того, чтобы позволить их найти, как вы, вероятно, делаете в своем HTML. Документация Schema.org включает в себя многочисленные примеры для создания различных типов разметки, включая JSON-LD, для большинства всех типов, которые они определяют. См. http://schema.org/person для одного примера или http://schema.org/docs/full.html для их полной иерархии типа.

GEM JSON-LD GEM пригодится, когда вы хотите создать эти данные из других источников (обычно некоторые формат RDF), либо интерпретировать, которые вы получили. Вы можете поэкспериментировать с этим на ​​http://json-ld.org/playground .

Вы также можете включить ваш JSON-LD в HTML, используя тег скрипта с Type = «Приложение / LD + JSON», как делает ваш пример. Если вы хотите увидеть, как выглядит ваши данные, вы можете тестировать его либо на инструменте тестирования структурированных данных Google, либо на http: // linter. Constructured-data.org/

 

There is a JSON-LD gem (http://rubygems.org/gems/json-ld), but it might not be specifically what you're looking for. Note that the point of JSON-LD is that it's just JSON, in this case using the schema.org context to interpret the values. Assuming that your data is in ActiveRecord models, you'll need a way to make sure that the record properties correspond to the appropriate schema.org properties. If this were the case, then just serializing your model to JSON (#to_json) gets you most of the way there. What remains is to add the @context, @id, and @type fields to the JSON.

For example, say you have a User model which serialized to something like the following:

{   "name": "Harry",   "email": "Harry@example.org" } 

As both "name" and "email" properties of http://schema.org/Person, you could get partway there by simply adding a @context and @type as follows:

{   "@context": "http://schema.org/",   "@type": "Person",   "name": "Harry",   "email": "Harry@example.org" } 

Presuming that you're building a RESTful app, it's good practice to give every object an @id, which corresponds to the resource URL for this person. This could be like the following:

{   "@context": "http://schema.org/",   "@id": "http://example.com/people/harry",   "@type": "Person",   "name": "Harry",   "email": "Harry@example.org" } 

Now, if you retrieve http://example.com/people/harry as JSON (or JSON-LD), you could get back that representation.

The other thing about JSON-LD is that it's for "Linked Data", so including references to other resources is useful for allowing them to be found, much as you probably do within your HTML. The schema.org documentation includes numerous examples for how to generate different types of markup, including JSON-LD, for most all of the types they define. See http://schema.org/Person for one example, or http://schema.org/docs/full.html for their complete type hierarchy.

The JSON-LD gem comes in handy when you want to generate this data from other sources (typically some RDF format), or interpret data you've received. You can experiment with this at http://json-ld.org/playground.

You can also include your JSON-LD in HTML using a script tag with type="application/ld+json" as your example does. If you want to see how your data looks, you can test it either on Google structured-data testing tool, or on http://linter.structured-data.org/

</div
 
 
     
     
1
 
vote
 <код> %script{type: "application/ld+json"}  :plain   {     "@context": "http://schema.org",             "headline": "Headline",            "@type": "Article",     "alternativeHeadline": "Alternative Headline}"   }   

вместо того, чтобы использовать <код> 99887776610 filter, http: //haml.info/docs/yardoc/file.reference.html#filters , вместо этого я использовал <код> @id1 тег, который позволяет мне определить его <код> @id2 Используя <код> @id3 , который определяет тип как <код> @id4 , http://haml.info/docs/yardoc/file.reference.html#attribute-methods

<Код> @id5 Фильтр, он не разбирает отфильтрованный текст. Это полезно для больших блоков текста без HTML-тегов, когда вы не хотите строки, начиная с. Или - чтобы проанализировать, см. Док http://haml.info/ Docs / Naircoc / file.Reference.html # простой фильтр

 
%script{type: "application/ld+json"}  :plain   {     "@context": "http://schema.org",             "headline": "Headline",            "@type": "Article",     "alternativeHeadline": "Alternative Headline}"   } 

Instead of using :javascript filter, http://haml.info/docs/yardoc/file.REFERENCE.html#filters, instead I have used the %script tag which allows me to define its type by using the attribute method that defines the type as application/ld+json, http://haml.info/docs/yardoc/file.REFERENCE.html#attribute-methods

The :plain filter, it does not parse the filtered text. This is useful for large blocks of text without HTML tags, when you don’t want lines starting with . or - to be parsed, see doc http://haml.info/docs/yardoc/file.REFERENCE.html#plain-filter

</div
 
 

Связанный проблема

1  Логические ценности не "читают" в рельсах  ( Boolean values not being read in rails ) 
Я импортировал некоторые значения из Excel, используя ROO на логические поля в моем приложении Rails. В консоль рельсов Похоже, что все работает нормально, ...

3  Разница между отправкой (: method_name) и методом (: method_name) .call?  ( Is there difference between sendmethod name and methodmethod name call ) 
Есть ли разница между <код> send и <код> method().call в ruby? <код> 1.send(:to_f) => 1.0 1.method(:to_f).call => 1.0 оба кажется же для меня, хотя. ...

2  Как я могу дублировать имя класса Ruby Core и все еще использую этот класс Core в моем классе?  ( How can i duplicate a ruby core class name and still use that core class in my c ) 
Я создаю очень ограниченный класс времени, в котором я хочу использовать метод анализа разбора Core Time Class. Так что я в конечном итоге с чем-то вроде ... ...

0  Ruby On Rails - Включение клиента скачать видео  ( Ruby on rails enabling client to download videos ) 
Требование - у меня есть видео, размещенное на моем сервере, пользователь должен быть в состоянии загрузить файл, нажав на ссылку. Я следую инструкциям, при...

3  Подавить ошибку при сохранении записи в рельсах  ( Suppress an error when saving a record in rails ) 
Я сохраняю данные в таблицу. <код> Question title:string author_id:integer description:text upvotes:integer Если значение «question.upvotes» сос...

7  Rails: Размер кеша в файле управления  ( Rails control file store cache size ) 
Документация для кэша на основе файлов в Rails говорит: Обратите внимание, что кеш будет расти, пока не будет заполнен диск, если вы не Периодически очищ...

1  Rails link_to запрос params - выбор в элементе на следующей странице  ( Rails link to query params selecting in item on the next page ) 
прямо сейчас у меня <код> link_to . Похоже на кнопку пользователю. Это кнопка обновления, поэтому он направляет пользователь на страницу планов. Я не только...

52  В чем разница между использованием .Exists?, И. Представляют? в рубине?  ( What is the difference between using exists and present in ruby ) 
Я хочу убедиться, что я использую их для правильного случая и хотите знать любые тонкости. Кажется, они функционируют одинаково, что нужно проверить, было ли ...

0  Ошибка обновления записи  ( Error updating a record ) 
Я получаю ошибку mysql: #update (ActiveReCord :: authentInvalid) "mysql :: Ошибка: # hy 000got Ошибка 139 из механизма хранения: При попытке обновить те...

1  Как обновить Ruby с 1.9.3 до 2.3.1 в Ubuntu 14.04 32 бит?  ( How to update ruby from 1 9 3 to 2 3 1 in ubuntu 14 04 32 bit ) 
Теперь я использую Ubuntu 14.04 32-битная ОС. Я ранее установил Ruby 1.9.3, и теперь я пытаюсь установить Ruby 2.3.1, используя «rbenv install -v 2.3.1». Когд...

1  Теоретически безопасны для переопределения любого метода Ruby, который не начинается с подчеркивания?  ( Is it theoretically safe to redefine any ruby method that doesnt begin with und ) 
Например, это теоретически безопасно для модификации <код> Object#object_id , поскольку всегда есть <код> Object#__id__ , если вам действительно нужно знать, ...

0  Есть ли больше рубилийского способа сделать emput_val = [input_val, max] .min?  ( Is there a more rubylike way to do output val input val max min ) 
Иногда мне нужно что-то подобное: <код> output_val = ( input_val < max ) ? input_val : max И если я чувствую себя скупой в пространстве, я мог бы выбрат...

2  Можно ли выбрать или выделить подстроку текста в текстовом поле с использованием Watir?  ( Is it possible to select or highlight a substring of text within a text box usin ) 
Я относительно новичок в Ruby и Watir, но пытаюсь создать скрипт Ruby, который выберет данный подмножество строки из текстового поля. Пример Учитывая строку...

2  Можно #to_s когда-либо неудачу?  ( Can to s ever fail ) 
Я строю простую фабрику в Ruby, который возвращает <код> Callable (<код> Lambda в этом случае), который знает, как отличить имя прошедшего типа (например, к...

32  Запуск программы Ruby в качестве службы Windows?  ( Running a ruby program as a windows service ) 
Можно ли запустить приложение Ruby в качестве службы Windows? Я вижу, что есть связанный вопрос, который обсуждает запуск Приложение Java в качестве службы W...

Связанный проблема

1  Логические ценности не "читают" в рельсах 
3  Разница между отправкой (: method_name) и методом (: method_name) .call? 
2  Как я могу дублировать имя класса Ruby Core и все еще использую этот класс Core в моем классе? 
0  Ruby On Rails - Включение клиента скачать видео 
3  Подавить ошибку при сохранении записи в рельсах 
7  Rails: Размер кеша в файле управления 
1  Rails link_to запрос params - выбор в элементе на следующей странице 
52  В чем разница между использованием .Exists?, И. Представляют? в рубине? 
0  Ошибка обновления записи 
1  Как обновить Ruby с 1.9.3 до 2.3.1 в Ubuntu 14.04 32 бит? 
1  Теоретически безопасны для переопределения любого метода Ruby, который не начинается с подчеркивания? 
0  Есть ли больше рубилийского способа сделать emput_val = [input_val, max] .min? 
2  Можно ли выбрать или выделить подстроку текста в текстовом поле с использованием Watir? 
2  Можно #to_s когда-либо неудачу? 
32  Запуск программы Ruby в качестве службы Windows? 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.