0

Mongodb ドキュメント内に埋め込みドキュメントがあります。Mongodb ドキュメントは次のようになります。

[_id] => home
[url] => /
[type] => homepage
[people] => Array (
    [0] => Array (
        [name] => John Smith
        [rewrite] => john-smith
    )
    [1] => Array (
        [name] => John Q. Public
        [rewrite] => john-q-public
    )
)

people埋め込まれたドキュメントを繰り返し処理しようとしています。私の app.rb では、次のようにオブジェクトを haml に渡しています。

DB = Mongo::Connection.new.db("website", :pool_size => 5, :timeout => 5)                                                              
pages = DB.collection('pages')                                                                                                      

get '/' do                                                                                                                          
  home = pages.find_one( :type => "homepage" )                                                                                                                                                                     
  haml :index, :attr_wrapper => '"', :locals => {:items => home}                            
end                                                                                                                                 

私の index.haml では、次のようにドキュメント全体を反復処理できます。

-items.each do |item|
  %h2= item

peopleしかし、埋め込まれたドキュメントを反復処理するにはどうすればよいでしょうか? 私はこのようなことをしたいと思います:

-items.people.each do |person|
  %h2= person.name, person.rewrite

また、不適切な用語を使用している場合は修正してください。Mongo、Haml、Sinatra などは初めてです。

4

1 に答える 1

0

たぶん、Ruby の構文をもう少し学習する必要があります...people埋め込みドキュメントを反復処理する方法は次のとおりです。

-items["people"].each do |person|
  %h2= person["name"], person["rewrite"]
于 2012-07-11T22:07:41.813 に答える