1

我有一个在rails中带有签名的方法:

def my_function(some_variable)

end

我从 jquery get 函数中调用该方法,如下所示:

$.get('/controller/my_function', {data: mydata}, function(){

    });

但我收到一个错误,因为我还需要发送参数。我怎样才能做到这一点?

4

2 回答 2

0

正如@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
于 2013-06-30T16:46:00.810 回答
0

您需要在控制器中定义一个动作并从该动作调用您的函数

def my_action
  my_function(params[:data])
end

并且您的 jquery 脚本将调用 my_action

$.get('/controller/my_action', {data: mydata}, function(){

    });
于 2013-06-30T13:21:55.737 回答