2016-12-21 8 views
0

変数を使用してモデルの正しいインスタンスを見つけるために、AJAXリクエストを使用してJavaScript変数をRailsコントローラに送信しようとしています。AJAXリクエストRailsスライドショー

私のコントローラにこの変数を表示させることはできますが、部分的なものなどどこにも保存することができませんでした。ここで

私js.erbファイルです:

$(".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) { 
    } 
    }); 

そして、私のコントローラファイル:

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 

これは、正しくコントローラに@slideNumberを置くと、コンソールにはJavaScriptから来る変数を出力します私は部分的に渡すことはできませんまたはJavaScriptファイルからの応答として再利用することはできません。何か不足していますか?

+0

'respond_with @ slideNumber'を試しましたか? –

+0

こんにちは、お返事いただきありがとうございます。私は 'respond_to'ブロックを' respond_with(@slideNumber) 'に置き換えようとしましたが、私はこの変数を得られないので何かが欠けています。 – Laurence

+0

コンソールでこのエラーが発生します:POST http:// localhost:3000/update_description (内部サーバエラー) – Laurence

答えて

0

サーバログを見ると、Railsがhtmlコンテンツに応答していることがわかります。 ajaxリクエストurlに.jsを追加して、Railsがjsで応答する必要があることを確認してください。例:

var update_description = <%= "#{update_description_path}.js" %> 
関連する問題