我一直在努力使用youpy的「lastfm」gem從last.fm中提取動態數據。獲取數據的效果很好;然而,軌道似乎不喜歡動態部分。現在,我已經添加的輔助文件夾中找到的代碼名爲「HomeHelper」(創建Rails應用程序的過程中產生的)一個輔助模塊:Rails3助手和動態內容
module HomeHelper
@@lastfm = Lastfm.new(key, secret)
@@wesRecent = @@lastfm.user.get_recent_tracks(:user => 'weskey5644')
def _album_art_helper
trackHash = @@wesRecent[0]
medAlbumArt = trackHash["image"][3]
if medAlbumArt["content"] == nil
html = "<img src=\"/images/noArt.png\" height=\"auto\" width=\"150\" />"
else
html = "<img src=#{medAlbumArt["content"]} height=\"auto\" width=\"150\" />"
end
html.html_safe
end
def _recent_tracks_helper
lfartist1 = @@wesRecent[0]["artist"]["content"]
lftrack1 = @@wesRecent[0]["name"]
lfartist1 = @@wesRecent[1]["artist"]["content"]
lftrack1 = @@wesRecent[1]["name"]
htmltrack = "<div class=\"lastfm_recent_tracks\">
<div class=\"lastfm_artist\"><p>#{lfartist1 = @@wesRecent[0]["artist"]["content"]}</p></div>
<div class=\"lastfm_trackname\"><p>#{lftrack1 = @@wesRecent[0]["name"]}</p></div>
<div class=\"lastfm_artist\"><p>#{lfartist2 = @@wesRecent[1]["artist"]["content"]}</p></div>
<div class=\"lastfm_trackname\"><p>#{lftrack2 = @@wesRecent[1]["name"]}</p></div>
</div>
"
htmltrack.html_safe
end
end
我創建了一個局部的每一個,並將其添加到我的索引頁:
<div class="album_art"><%= render "album_art" %></div>
<div id="nowplayingcontain"><%= render "recent_tracks" %></div>
大,這得到像我想要在頁面上我所需要的數據並顯示;不過,根據last.fm,當歌曲改變時,它似乎不會在我的網站上,除非我重新啓動服務器。
我已經測試過使用Phusion Gassenger和WEBrick,它似乎在兩者上都這樣做。我曾認爲這可能是一個緩存這個特定頁面的問題,所以我嘗試了一些緩存黑客來使頁面重新加載。這沒有幫助。
然後我得出結論,將這些代碼粘貼到幫助文件中可能不是最好的解決方案。我不知道助手處理動態內容的能力如何;如此。如果有人對此有任何洞見,真棒!感謝大家!
爲什麼你用'@@'代替所有這些? – 2012-07-15 03:35:43