youpy の「lastfm」gem を使用して、last.fm から動的データを取得する作業を行っています。データの取得はうまくいきます。ただし、レールは動的部分が気に入らないようです。今、ヘルパー フォルダーにある "HomeHelper" というヘルパー モジュール (Rails アプリの作成中に生成されたもの) にコードを追加しました。
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 を使用してこれをテストしましたが、両方で動作するようです。これはこの特定のページのキャッシュに問題があるのではないかと考えていたので、ページをリロードして期限切れにするためにいくつかのキャッシュ ハックを試しました。これは役に立ちませんでした。
その後、このコードをヘルパー ファイルに貼り付けることは最善の解決策ではない可能性があるという結論に達しました。ヘルパーが動的コンテンツをどの程度うまく処理できるかはわかりません。このような。誰かがこれについて何か洞察を持っているなら、素晴らしい!! みんな、ありがとう!