[英]Rails AJax get dynamic URL
嗨,我是rails noe的初学者。我正在使用jplayer在rails 4中使用音乐播放器应用程序,并使用Ajax函数创建播放列表。
$.ajax({
type: 'GET',
url:"../albums.json",
success: function(data){
myPlaylist.add({title:$(this).attr("names")})
},
error: function(xhr,status,error){
alert(error);
}
});
我想要的是当我单击特定专辑进行播放时,将诸如albums / 3.json之类的单个专辑传递给Ajax URL ...欢迎任何想法
既然您是初学者,让我为您解释
阿贾克斯
Ajax代表异步Javascript和XML-它旨在与标准HTTP请求并行发送请求。 这基本上意味着您无需重新加载页面就可以从服务器请求数据。
大多数人遇到的问题是,他们认为Ajax是这个黑魔术。 它实际上只是Javascript代表您向服务器发送请求。
使用Ajax发送请求时,您需要能够将正确的数据发送到正确的URL,然后相应地处理响应。
我在开始使用软件很长时间后才了解到这一点,因此希望对您有所帮助。
-
路线
#config/routes.rb
resources :albums #-> domain.com/albums/[:id]
您需要采取的第一步是正确定义您的路线。 由于Rails使用了资源丰富的路由结构(路由是围绕各种以控制器为中心的资源构建的,因此您可以使用
当你发送一个请求albums/x.json
,你真的发送请求到show
中的作用albums
的资源,你需要准备
-
控制者
设置路线时,您将需要能够通过控制器处理JSON请求。 您将使用respond_to
块执行此操作:
#app/controllers/articles_controller.rb
Class ArticlesController < ApplicationController
def show
@album = Album.find params[:id]
respond_to do |format|
format.html
format.json { render json: @album.to_json}
end
end
end
-
UJS
最后,为此最好使用Rails的UJS -UJS旨在发送ajax
请求(除其他事项外)而无需编写任何JS代码。
#app/views/controller/index.html.erb
<%= link_to "Play", @album, remote: true, format: :json %>
然后,您可以使用带有一些UJS ajax事件挂钩的标准JS捕获响应:
#app/assets/javascripts/application.js
$(document).on("ajax:complete", "#link", function(data){
//stuff here
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.