我有一个在rails中带有签名的方法:
def my_function(some_variable)
end
我从 jquery get 函数中调用该方法,如下所示:
$.get('/controller/my_function', {data: mydata}, function(){
});
但我收到一个错误,因为我还需要发送参数。我怎样才能做到这一点?
我有一个在rails中带有签名的方法:
def my_function(some_variable)
end
我从 jquery get 函数中调用该方法,如下所示:
$.get('/controller/my_function', {data: mydata}, function(){
});
但我收到一个错误,因为我还需要发送参数。我怎样才能做到这一点?
正如@Henry 指出的那样-在您的javascript代码data: xxxx
中,HTTP参数从浏览器发送到服务器上的rails控制器操作,rails将所有HTTP参数放params
入哈希中,所以如果您有
var data = {
first_name: "Joe",
last_name: "Smith"
}
$.get('/controller/some_action', data, function() {
// ...
访问服务器上的 params 哈希中的那些
def some_action
logger.debug params.inspect
# => { :first_name => "Joe", :last_name => "Smith", :action => "some_action" }
user.first_name = params[:first_name]
# ...
end
您需要在控制器中定义一个动作并从该动作调用您的函数
def my_action
my_function(params[:data])
end
并且您的 jquery 脚本将调用 my_action
$.get('/controller/my_action', {data: mydata}, function(){
});