2014-08-27 102 views
0

我在我的應用程序控制器中有一個方法。從ajax調用的應用程序控制器方法

def session_selected(id) 
    session[:selected] = [] if session[:selected].blank? 
    if session[:selected].include?(id) 
    session[:selected].delete(id) 
    else 
    session[:selected] << id 
    end 
end 

我從我的.js對它的調用文件

function check_set(id){ 
    $.ajax({url: 'session_selected', 
    data: {id: id}, 
    method: 'get'}); 
    window.location.reload(); 
} 

的方法似乎從來沒有看到ID從PARAMS進來......

Started GET "/session_selected?id=5" for 127.0.0.1 at 2014-08-27 10:36:45 -0700 
Processing by ApplicationController#session_selected as */* 
    Parameters: {"id"=>"5"} 
Completed 500 Internal Server Error in 1ms 

ArgumentError - wrong number of arguments (0 for 1): 

而且,有沒有這方面的好資源?

+0

首先'數據:id'應所著的'數據:{ID:ID}' – IS04 2014-08-27 17:04:28

+1

你有這個路線方法。如果是這樣,它不應該接受任何參數(而應該使用'params')。如果沒有,你期望通過Ajax調用它嗎? – 2014-08-27 17:06:05

+1

你不能直接調用helper方法。你將需要打電話給控制器的一個動作,它可以進一步調用助手方法 – RAJ 2014-08-27 17:06:12

回答

0

謝謝你們的幫助

應用控制器

def session_selected() 
    id = params[:id] 
    session[:selected] = [] if session[:selected].blank? 
    if session[:selected].include?(id) 
    session[:selected].delete(id) 
    else 
    session[:selected] << id 
    end 
end 
相關問題