1

製品データ ファイルに基づくタグとカテゴリを使用して、データ ファイルを反復処理することはできますか? 例えば:

# toys.yml
- name: Fire Truck
  id: 1
  description: Red
  category: Automobile
  url: toys/fire-truck
  tags: red, truck

- name: Freight Train
  id: 2
  description: Fast delivery mail
  url: toys/freight-train
  category: Train
  tags: freight, train, rail

プロキシ ページを使用してページを生成しています。

data.toys.each do |t|
  proxy toys.path, "toys.html", locals: { toy: t}, ignore: true
end

index.html.erbテンプレートは次のようになります。

<div class="toys">
 <% data.toys.each do |t| %>
   <h1><%= t.name %></h1>
   <p><%= t.desription %></p>
   <span class="category"><%= t.category %></span> // I would like this to be linked to generate categories based on the toys.yml file
  <span class="tags"><%= t.tags %></span> // The same as category, generated tag pages based on the toys.yml
 <% end %>
</div>

これどうやってするの?私はちょうど作成する必要があります:

  • 個々のおもちゃのページなど。firetruck.md を使用して、ページの生成や、メタ データを使用したカテゴリ ページやタグ ページの作成方法について心配する必要はありませんか?
  • または、カテゴリを入力できるように作成する必要がありますが、それを一意の IDcategory.ymlにリンクする方法はありますか?toys.yml

私は静的ページについて学んでおり、データベースに基づくアプリを構築せずにこれを実装する方法を知りたいと思っていました。

4

1 に答える 1

1

ファイルとプロキシを作成category.html.erbして、toys.yml ファイル内の一意のカテゴリごとにカテゴリ ページを作成できます。

categories.each do |c|
  proxy "#{c}.html", "category.html", locals: { category: c, toys: data.toys}, ignore: true
end

カテゴリのリストを取得する方法については、 data.toys リストで標準の ruby​​ 操作を使用できます。

categories = data.toys.map {|t| t.category}.uniq

タグは似ていますが、カンマ区切りのリストを解析する必要があります。

より複雑なデータ型を作成したり、独自の Ruby Toy および Category クラスを定義してから、locals 引数でプロキシ呼び出しに渡すこともできます。これにより、たとえば、カテゴリ オブジェクトに、そのカテゴリに属する​​おもちゃオブジェクトのリストを含めることができます。その場合は ruby​​ の Enumerablegroup_byメソッドが役立ちます。

于 2016-11-16T10:26:10.467 に答える