简体   繁体   中英

AJAX request Rails slideshow

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?

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" %>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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