0

我有一个简单的 .erb 文件,用于创建歌曲名称列表。

当用户单击名称时,我希望打开一个浏览器窗口并在 YouTube 中播放该歌曲。我的 YouTube 实现是一个快速的 hack,但如果发生这种情况,您只需调用

YouTubeAPI.new(searchphrase)

并传递一个字符串。

我的问题:如何使页面响应用户输入,以便当用户单击歌曲名称时,它会将该歌曲名称作为值传递给我的 YouTubeAPI 类方法?

这是我的小 .erb 文件:

<!DOCTYPE html>
<html lang="en-US">
<head></head>
<body>
<h1>Songs</h1>
<p>There are <%=Song.all.count%> in this playlist.</p>

<p><strong>All Songs:</strong></p>

<% Song.all.each do |song| %>
<li><a href = "songs/<%=song.name.downcase.gsub(/\s+/, "")%>.html">
  <%=song.name%></a></li>
<% end %>

<a href = "../index.html">Home</a>

</body>
</html>
4

1 回答 1

0

我看到很少有办法解决这个问题。

其中之一当然是阿贾克斯。使用 Javascript 拦截此点击并将歌曲名称发送到您的控制器。控制器可以返回 Youtube URL,并且您的 javascript ajax 回调可以重新加载它。

要尝试的另一件事是将 href 替换为您的网站 - 您实际上使用歌曲名称作为参数调用您的网站,然后您的 YouTubeAPI 会将用户重定向到 youtube。

另一种选择,用 Javascript 重写这个帮助程序并将其放在客户端上。

于 2013-10-17T23:21:02.773 回答