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.