den*_*icz 0 ruby activerecord ruby-on-rails
我正在编写一个脚本,应该是将一个项目列表写入一个哈希,但由于某种原因,它只将最后一项放在哈希的循环中......我整天都在处理这个脚本,所以我很确定我错过的东西.
这是脚本
@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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
Ste*_*lat 13
在最后一行中,您将覆盖整个@history哈希,而不是向其添加新的键/值对.我猜这不是你想要的.改变这一行:
@history = {m.title => @h_lang.english}
Run Code Online (Sandbox Code Playgroud)
对此:
@history[m.title] = @h_lang.english
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |