質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Slim

SlimはPHPアプリケーションを開発するための軽量なマイクロフレームワークです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

848閲覧

Railsで構造化マークアップを実装したい

Development_mm

総合スコア6

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Slim

SlimはPHPアプリケーションを開発するための軽量なマイクロフレームワークです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/04/27 15:37

編集2018/04/27 16:10

前提・実現したいこと

こんにちは。初めての投稿です。
プログラミング初心者としてとある企業でwebエンジニアをしております。
今回はschema.orgの対応を依頼されました。
こちらの開発ではRubyを使っております。また、htmlファイルはslimで記述しています。
(用語含め初心者のため日本語の変なところがあればご指摘お願い致します。)

発生している問題・エラーメッセージ(JSON-LD)

Slim::Parser::SyntaxError in XXXs#index Showing /Users/(略)/app/views/XXXs/_XXX_item.html.slim where line #XXX raised: Unknown line indicator

該当のソースコード(JSON-LD)

... script type="application/ld+json" { "@context": "http://schema.org", "@type": "Hoge", ... }

試したこと1(JSON-LD)

slimでこう書いたらダメなんだな、というのしか分からなかったため「slim schema.org 実装」でかなり調べましたが、特に良い情報は見つかりませんでした。

JSON-LDとRails
こちらのamatsuda/jbとあるものがすごく参考になりそうなのですが、url先にあるGitHubだとviewsフォルダ内にはshow.jsonld.jbしかなく、普通のshow.htmlと並べて置けばいいのか、特別な宣言が必要なのかわかりませんでした。(あと、どう「できているか」確認すれば良いか分からない)

試したこと2(JSON-LD)

【検索エンジンにあなたのページの「情報」を伝える】リッチスニペット対策にもなる「構造化マークアップ」を実装しよう!
こちらに記載されているテストコードをgoogleの構造化データテストツールで検証してみました。

↓↓URL先にある検証画像↓↓
URL先にある検証画像
↓↓URL先にあるテストコードをコピー&ペーストし、自ら検証した結果↓↓
URL先にあるテストコードをコピー&ペーストし、自ら検証した結果

もしかして何か環境が整っていないのでしょうか。

発生している問題・エラーメッセージ(Microdata)

NameError in XXXs#index
Showing /Users/(略)/app/views/XXXs/_XXX_item.html.slim where line #XXX raised:

undefined local variable or method `feature' for #<#Class:0x007f9da8319c58:0x007f9da82eae80>

該当のソースコード(Microdata)

div class="XXX-inner #{YYY}" itemscope itemtype="http://schema.org/Hoge" #itemscope~を追加時起きる .XXX-header - if XXX.index_image_url = link_to XXX_path(XXX), class: 'XXXItem-imageWrapper' do .XXXItem-image.lazyload data-bg="#{XXX.index_image_url}" .XXXItem-txt .XXXItem-labels ... - XXX.XXX_features.map(&:feature).each do |feature| = link_to search_XXXs_path_by_conditions(feature: feature, AAA: XXX.AAA), class: 'XXXItem-label is-feature' do = "#{feature.name}" #error箇所 p.XXXItem-YYY = link_to XXX.YYY.ZZZ, search_XXXs_path_by_conditions(AAA: XXX.AAA, YYY: XXX.YYY) ...

試したこと(Microdata)

そんなわけないだろ、と思いつつもクラスと同時に書いたから起きたエラーと想定し、タグを入れ子にして書いてもダメでした。
あとはなぜ起きたのか想定できず、お手上げ状態です。

ちなみにエラー発生時のコンソール上ではXXXは問題なく引っ張ってこれている上に、featureに関する処理の上部省略部分では全く同じ引き出し方で4つほど情報を引っ張りだしています。

itemscope itemtype="http://schema.org/Hoge"を足すだけでネームエラーが起きます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

slimの書き方の問題でした。
以下解決案はMicrodataでの実装です。

div [class="XXX-inner #{YYY}" itemscope itemtype="http://schema.org/Hoge"]

とすればエラーが起きません。

投稿2018/05/03 05:18

Development_mm

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Rubyは詳しくないので一部分だけですが、“Hoge” などに使用している引用符が全角になっています。
JSON-LDはJSONなので、引用符は半角の " になります。

投稿2018/04/27 16:04

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Development_mm

2018/04/27 16:07

ご回答ありがとうございます。 お恥ずかしいことに確かに全角になっていました。しかし半角に直しても同じエラーが発生致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問