Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在用户单击时调用Ruby方法?_Javascript_Ruby On Rails_Ruby - Fatal编程技术网

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

Javascript 如何在用户单击时调用Ruby方法?,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我有一个简单的.erb文件,可以创建歌曲名称列表 当用户单击该名称时,我希望有一个浏览器窗口打开并在YouTube上播放该歌曲。我的YouTube实现是一个快速的黑客,但如果发生这种情况,您只需调用 YouTubeAPI.new(搜索短语) 然后传一串给它 我的问题:如何让页面响应用户输入,以便当用户单击歌曲名称时,它将该歌曲名称作为值传递给我的YouTubeAPI类方法 这是我的小.erb文件: <!DOCTYPE html> <html lang="en-US"> &

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

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

YouTubeAPI.new(搜索短语)

然后传一串给它

我的问题:如何让页面响应用户输入,以便当用户单击歌曲名称时,它将该歌曲名称作为值传递给我的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>

歌曲
此播放列表中有

所有歌曲:


  • 我认为很少有办法做到这一点

    其中之一当然是Ajax。用Javascript截取此点击并将歌曲名称发送给控制器。控制器可以返回Youtube URL,javascript ajax回调可以重新加载该URL

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


    还有一个选项,用Javascript重写此帮助程序并将其放到客户端。

    YouTubeAPI.new(searchphrase)方法在哪里?它是一个javascript还是Rails服务器端的一个方法?它肯定不是JS,所以我假设它是Rails服务器端。