0

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

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

products_controller.rb 用于def 显示部分:

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 个字段编写相同的代码。

我正在使用带有 Mongoid 的 Rails 3。我认为这不是特定于 mongodb 的问题。

4

2 回答 2

0

尝试这个:

foreach (var item  in YourcollectionName)
{
    var name = item.name;
    var price = item.price;
}
于 2013-06-09T09:58:15.567 回答
0

Mongoid 模型有一个attributes方法可以返回属性的哈希值。如果您遍历该哈希,您将获得每个条目的名称和值。

例如

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

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

于 2013-06-09T11:52:22.587 回答