我正在编写一个脚本,应该是将一个项目列表写入哈希,但由于某种原因,它只将最后一项放在哈希的循环中...我一直在处理这个脚本所有那一天,所以我很确定我错过的东西。
这是脚本
@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
答案 0 :(得分:13)
在最后一行中,您将覆盖整个@history哈希,而不是向其添加新的键/值对。我猜这不是你想要的。改变这一行:
@history = {m.title => @h_lang.english}
到此:
@history[m.title] = @h_lang.english