Я хочу добавить пары ключей и значений к результату (из строки), поэтому я сделал так:
row :skill_level do |user|
level = {}
user.try(:sport_memberships).each do |sport|
sport_name = Sport.where(id: sport.try(:sport_id)).try(:name)
sport_level = sport.try(:level)
level = level.merge!("#{sport_name.to_sym}" => sport_level)
end
end
Ассоциация моделей:
user.rb
has_many :sport_memberships,
inverse_of: "user",
class_name: "Sport::Membership"
sport.rb
has_many :memberships
members.rb
belongs_to :sport, inverse_of: "memberships", counter_cache: true
belongs_to :user, inverse_of: "sport_memberships"
Я ожидал, что уровень вернет значение, например: {badminton: 2, golf: 2},но фактические результаты: [#<Sport::Membership id: 5024, sport_id: 4, user_id: 976, level: 2, tribe_id: nil>, #<Sport::Membership id: 5025, sport_id: 14, user_id: 976, level: 2, tribe_id: nil>]
.Кажется, моя петля не прошла как ожидалось.Как я могу исправить мою проблему?