通过迭代访问mongodb文档字段名称及其值

时间:2013-06-09 09:04:00

标签: ruby ruby-on-rails-3 mongodb mongoid

假设我在产品集合中有一个mongodb文档:

{
    "_id" : ObjectId("51b1eac0311b6dd93a000001"),
    "name" : "Apple",
    "price" : "34.45"
}

products_controller.rb def show 部分:

def show
    @product = Product.find(params[:id])
end

我想在 show.html.erb 中代码如下所示:

<% @product.each do |f|%>
     <p>f.label</p> # this is only an image code
     <p>f.value</p> # this is only an image code
<% end %>

Rails 3第2行和第3行的代码应该如何以通用方式显示,以便显示如何? :

name: Apple
price: 34.45

字段数可以是20,所以我不想为20个字段编写相同的代码。

我使用Rails 3和Mongoid。我认为这不是一个特定于mongodb的问题。

2 个答案:

答案 0 :(得分:0)

试试这个:

foreach (var item  in YourcollectionName)
{
    var name = item.name;
    var price = item.price;
}

答案 1 :(得分:0)

Mongoid模型有一个attributes方法,它返回属性的哈希值。如果迭代该哈希,您将得到每个条目的名称和值。

例如

<% @product.attributes.each do |name, value| %>
  <p>
    <%= name%> : <%= value %>
   </p>
<% end %>

您可能需要一些更复杂的格式代码,以获得您可能获得的所有类型的值(日期,数组,哈希等)的漂亮输出。