繁体   English   中英

Rails AJax获取动态URL

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM