我在rails中有一个带有signautre的方法:
def my_function(some_variable)
end
我从jquery get函数调用这个方法:
$.get('/controller/my_function', {data: mydata}, function(){
});
但我收到错误,因为我还需要发送参数。 我怎么能这样做?
答案 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