Проблемы с Ruby Loop - PullRequest
       1

Проблемы с Ruby Loop

0 голосов
/ 30 декабря 2010

Я работаю над сценарием, который должен записывать список элементов в хеш, но по какой-то причине он помещает только последний элемент цикла в хэш ... день, так что я почти уверен, что это то, чего мне просто не хватает.

Вот сценарий

@mr = MediaRating.where("user_id = ?", session['user_credentials_id'])
@mr.each do |rating|
  @m = Media.where("id = ?", rating.media_id)
  @m.each do |m|
    s = Profile.find_by_subscriber_id(m.subscriber_id)
    @h_lang = Language.find_by_code(s.language)
    @history = {m.title => @h_lang.english}
  end
end

В таблице MediaRating есть несколько записей, поэтому я знаю, что это как-то связано с тем, как работает мой цикл. Заранее спасибо за помощь!

Рабочий код:

@mr = MediaRating.where("user_id = ?", session['user_credentials_id'])
@mr.each do |rating|
  @m = Media.find(rating.media_id)
  s = Profile.find_by_subscriber_id(@m.subscriber_id)
  @h_lang = Language.find_by_code(s.language)
  @history[@m.title] = @h_lang.english
end

1 Ответ

13 голосов
/ 30 декабря 2010

В последней строке вы перезаписываете весь хеш @history вместо добавления новой пары ключ / значение.Я предполагаю, что это не то, что вы хотели.Измените эту строку:

@history = {m.title => @h_lang.english}

на эту:

@history[m.title] = @h_lang.english
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...