2

私は仲介者を使用して静的サイトで作業しており、mmのローカルデータ機能を使用しようとしています。

現在、仲介者プロジェクトのソースディレクトリ内に必要なデータディレクトリがあります。

データディレクトリ内にはyamlファイル(home.yml)があります

ファイルの構造は次のとおりです。

slides:
    - image: "/img/slider/slide1.jpg"
      image_alt: "Slide 1 alt text"
      caption: "Slide 1 caption"

    - image: "/img/slider/slide2.jpg"
      image_alt: "Slide 2 alt text"
      caption: "Slide 2 caption"

次に、次のようにhtml.erbファイル内のこれらのスライドをループしようとしています。

<%= data.home.slides.each do |s| %>

    <figure class="slide">

        <%= image_tag(s[:image], alt: s[:image_alt]) %>

        <figcaption><%= s[:caption] %></figcaption>

    </figure>

<% end %>

しかし、仲介者はコンパイルされたhtmlファイルにNoMethodErrorを吐き出します。

#<Middleman :: CoreExtensions :: Data :: DataStore:0x4383918>の未定義のメソッド `home'

何が間違っているのかわかりません。データディレクトリをソースフォルダの外のレベルに移動しようとしましたが、何もしませんでした。

仲介者がデータディレクトリの横にあるhome.ymlフォルダを認識していないようです。仲介者のデータ機能の文書化やサポートの方法があまりないことがわかったので、これに関する助けは大いにありがたいです。

4

1 に答える 1

1

あなたはかなり近かった-あなたはちょっとしたタイプミスがあった。等号「=」を削除した方法に注意してください。

この行を変更します。

<%= data.home.slides.each do |s| %>

これに:

<% data.home.slides.each do |s| %>

これが完了すると、次のマークアップが生成されます。

<figure class="slide">
    <img alt="Slide 1 alt text" src="/img/slider/slide1.jpg">
    <figcaption>Slide 1 caption</figcaption>
</figure>

<figure class="slide">
    <img alt="Slide 2 alt text" src="/img/slider/slide2.jpg">
    <figcaption>Slide 2 caption</figcaption>
</figure>
于 2013-02-09T04:03:56.087 に答える