如何在用户点击时调用Ruby方法?

时间:2013-10-17 23:12:47

标签: javascript ruby-on-rails ruby

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

当用户点击名称时,我想要一个浏览器窗口打开并在YouTube中播放该歌曲。我的YouTube实施是一个快速入侵,但就此而言,您只需致电

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>

1 个答案:

答案 0 :(得分:0)

我看到的方法很少。

当然,一个是Ajax。使用Javascript拦截此单击并将歌曲名称发送到您的控制器。控制器可以返回Youtube URL,你的javascript ajax回调可以重新加载它。

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

还有一个选项,在Javascript中重写这个帮助程序并将其放在客户端上。