Ruby on rails 4 Mongoid/Rails在循环中有很多返回true的元素,并且这些元素都属于,为什么?
我有两种型号(产品和类别): 正如您所看到的,两者都有Ruby on rails 4 Mongoid/Rails在循环中有很多返回true的元素,并且这些元素都属于,为什么?,ruby-on-rails-4,mongoid4,Ruby On Rails 4,Mongoid4,我有两种型号(产品和类别): 正如您所看到的,两者都有has\u和\u属于\u many关系。保存/检索数据时,所有工作均按预期进行: @products = Products.all 将返回此json: { _id: ObjectId("54ba495957694d4d95010000"), category_ids: [ ObjectId("54ba494557694d4d95000000") ], created_at: ISODate("
has\u和\u属于\u many
关系。保存/检索数据时,所有工作均按预期进行:
@products = Products.all
将返回此json:
{
_id: ObjectId("54ba495957694d4d95010000"),
category_ids: [
ObjectId("54ba494557694d4d95000000")
],
created_at: ISODate("2015-01-17T11:36:57.641Z"),
enabled: false,
name: "Product 1",
price: "23.9",
sku: "KOPP0909",
updated_at: ISODate("2015-01-17T11:36:57.641Z")
}
到目前为止还不错。在我看来,我将循环介绍以下产品:
@products.each do |p|
p.categories.each do |c|
c.name
...
它将返回并按预期显示类别名称。我遇到的问题是,虽然上面的代码将按预期返回类别,但它也将在末尾打印true
(对于上面的对象):
Category 1
和true
那是什么?如何删除它?正如@phoet所说,伪代码使我们无法确切地知道发生了什么,但我猜您正在做的事情非常简单,比如输出循环的值,而不是默默地循环并只输出类别。例如,请注意以下示例中的等号,除了嵌套输出外,它还会输出对象本身的一些值: 雇员再培训局: vs
请添加您正在执行的真实代码。使用此伪代码,我们无法帮助您调试此问题!
@products.each do |p|
p.categories.each do |c|
c.name
...
<%= for @products.each do |p| %>
<%= p.categories.each do |c| %>
<%= c.name %>
<% end %>
<% end %>
<% for @products.each do |p| %>
<% p.categories.each do |c| %>
<%= c.name %>
<% end %>
<% end %>
= for @products.each do |p|
= p.categories.each do |c|
= c.name
- for @products.each do |p|
- p.categories.each do |c|
= c.name