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