Ruby を扱うのはこれが初めてなので、間違ったアプローチをしている可能性があります。
ハッシュを調べて内容を表示しようとしています。ハッシュを調べているときに、city などのキーが存在するかどうかをテストする必要があります。都市が存在しない場合、住所は表示されません。これは、ハッシュの構築を開始した場所です。
# app.rb
set :haml, :format => :html5
get "/" do
@users = Hash[
[["name", "bill"], ["city", "nyc"], ["address", "street"]],
[["name", "ted"], ["city", "denver"]],
[["name", "sam"], ["address", "road"]]
]
haml :index
end
そして、これは私がハッシュをループする方法です:
# layout.haml
- @users.each do |user|
- user.each do |u|
- u.each do |b|
= b
b に到達すると、次のようにすべてのコンテンツが表示されます。
["name", "bill"]
["city", "nyc"]
["address", "street"]
["name", "ted"]
["city", "denver"]
ループで、名前を表示するだけでなく、各ユーザーの住所が存在するかどうかを確認して、都市を表示する必要があるかどうか、および追加する必要があるマークアップを決定するにはどうすればよいですか? 次のような表示が理想的です。
<p>bill, <span class="address">nyc, street</span></p>
<p>ted</p>
<p>sam, <span class="address">road</span></p>
この方法でハッシュを適切に作成していますか?