按密钥名

时间:2018-01-27 00:06:16

标签: ruby-on-rails-4 middleman-4

我是第一次创建New Middleman网站。我有大约20,000页我想制作静态,除了这个1个黯淡的问题,我几乎就在那里。我有一个每月生成的CSV文件,我将转换为yaml。

我的结构与以下相同:data / people.yml(来自中间人网站的代码)

friends:
  -
    name: Bob Smith
    address: 101 Foo Lane
    birth: 1966-03-03
  -
    name: Mary Johnson
    address: 120 Bar St
    birth: 1967-06-18

我可以使用以下代码顺利完成:

<% data.people.friends.each do |f| %>
<%= f.name %><br/>
<%= f.address %><br/>
<%= f.birth %><br/><br/>
<% end %>

产生:

鲍勃史密斯 101 Foo Lane
1966年3月3日

玛丽约翰逊 120 Bar St
1967年6月18日

我的目标是在用户访问http://www.web_site_here.com/people/bob.html等时获取Bob的信息,

我尝试了几种类似下面的方法,没有运气。

<% data.people.friends.each do |name, person| %>
   <%= person.name %>
<% end %>

1 个答案:

答案 0 :(得分:0)

您需要为每个人创建代理页面。请参阅此处的示例https://middlemanapp.com/advanced/dynamic-pages/

您创建了一个模板(例如person.html.erb),它只显示一个人的信息,例如

<%= f.name %><br/>
<%= f.address %><br/>
<%= f.birth %><br/><br/>

然后在你的config.rg中循环访问人员,并使用该模板和yaml数据为每个人创建一个动态页面。

data.people.friends.each do |f|
    proxy "/people/#{f.name}.html", "/person.html", :locals => { :f => f }
end