如何在rails上的ruby中正确执行"where"子句?

Fer*_*one 1 ruby ruby-on-rails

我有一个应用程序,我应该使用我的数据库中的位置进行查询.一切都很好看.这是我的模特:

class TalentType < ApplicationRecord
    def talent_abilities
        TalentAbility.where(talent_type: self)
    end
end
Run Code Online (Sandbox Code Playgroud)

在我的控制台中,当我进行查询时,它正确地返回数据但是查询的最后一行是ActiveRecord :: Relation.问题是,在我看来,我做了一个:

<h6 class="subheading">Abilities</h6>
  <%= current_user.talent.talent_type.talent_abilities.each do |ta| %>
    <div class="form-group no-border bottom-0">
       <%= ta.name %>
     </div>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

我的最后一行是:

<ActiveRecord::Relation [#<TalentAbility id: 1, name: "Scuba diving", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, #<TalentAbility id: 2, name: "River rafting", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">,
Run Code Online (Sandbox Code Playgroud)

因此,在控制台中,我完全恢复了所有TalentAbility,但最后一个元素带有这个ActiveRecord的东西.像这样:

[#<TalentAbility:0x00000005cdab68
  id: 1,
  name: "Scuba diving",
  requires_description: false,
  talent_type_id: 1,
  created_at: Wed, 21 Nov 2018 15:10:02 UTC +00:00,
  updated_at: Wed, 21 Nov 2018 15:10:02 UTC +00:00>,

.........

#<TalentAbility:0x00000005cd03e8
  id: 52,
  name: "Play Musical Instrument",
  requires_description: false,
  talent_type_id: 1,
  created_at: Wed, 21 Nov 2018 15:10:02 UTC +00:00,
  updated_at: Wed, 21 Nov 2018 15:10:02 UTC +00:00>]
 => #<ActiveRecord::Relation [#<TalentAbility id: 1, name: "Scuba diving", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, #<TalentAbility id: 2, name: "River rafting", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, #<TalentAbility id: 3, name: "Bungee jumping", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, #<TalentAbility id: 4, name: "Extreme Sports", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, #<TalentAbility id: 5, name: "Basketball", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, #<TalentAbility id: 6, name: "Skiing", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, #<TalentAbility id: 7, name: "Hiking", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, #<TalentAbility id: 8, name: "Ice skating", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, #<TalentAbility id: 9, name: "Surfing", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, #<TalentAbility id: 10, name: "Racing", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, ...]> 
Run Code Online (Sandbox Code Playgroud)

如何在我的查询中避免这最后一行?

spi*_*ann 5

只需=从迭代结果的行中删除:

<% current_user.talent.talent_type.talent_abilities.each do |ta| %>
  <div class="form-group no-border bottom-0">
    <%= ta.name %>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)