调用带签名的方法

时间:2013-06-30 13:11:02

标签: ruby-on-rails

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

def my_function(some_variable)

end

我从jquery get函数调用这个方法:

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

    });

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

2 个答案:

答案 0 :(得分:0)

您需要在控制器中定义一个动作,然后通过该动作调用您的函数

def my_action
  my_function(params[:data])
end

并且您的jquery脚本将调用my_action

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

    });

答案 1 :(得分:0)

正如@Henry指出的那样 - 在你的javascript代码中data: xxxx是从浏览器发送到服务器上的rails控制器动作的HTTP参数,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