weixin_33749242 2016-12-21 16:53 采纳率: 0%
浏览 49

AJAX请求Rails幻灯片

I'm trying to send a JavaScript variable to my Rails controller through an AJAX request in order to use the variable to find the right instance of my model.

I can get my controller to print this variable, but I have not been able to save it anywhere such as a partial.

Here is my js.erb file:

  $(".single-item").on('afterChange', function(event, slick, currentSlide, nextSlide){
  $.ajax({
    url: 'update_description',
    type: 'post',
    data: {slideNumber: $(".single-item").slick('slickCurrentSlide')},
    dataType: 'json',
    success: function(data) {
    }
  });

And my controller file:

def index
    @posts = Post.all
    if params[:slideNumber] == nil
        @slideNumber ||= 0
    else
    @slideNumber = params[:slideNumber]
    end

    puts @slideNumber
    respond_to do |format|
        format.html {}
        format.js {}
    end
end

This puts @slideNumber in the controller correctly and prints the variable coming from JavaScript to console, however I am not able to pass it to a partial or to reuse it as a response from the JavaScript file. Am I missing something?

  • 写回答

1条回答 默认 最新

  • csdn产品小助手 2016-12-21 18:31
    关注

    If you look at the server log, maybe you'll see that Rails is responding with the html content. Try adding .js to ajax request url so that Rails knows it should respond with js. For example:

    var update_description = <%= "#{update_description_path}.js" %>
    
    评论

报告相同问题?