gpt4 book ai didi

javascript - 在 "beforeunload"上使用 jQuery 调用 Rails Controller 方法

转载 作者:行者123 更新时间:2023-12-02 19:41:23 25 4
gpt4 key购买 nike

我想在用户离开页面时调用 Controller 中的方法。理想情况下,我还想传递几个参数。

这就是我所拥有的。不确定我是否正确处理了参数,并且我的 left 方法从未被调用。

在“show.html.erb”中

<script language="javascript"> 
$(window).bind('beforeunload', function() {
$.get('/leave?foo='+<%= @bar %>, null, null, null)
});
</script>

在“routes.rb”中

将“/leave”匹配为:“posts#leave”

在“posts_controller.rb”中

def leave
puts params[:bar]
end

注意:将 link_to 直接放入 /leave 效果很好,并将 jQuery $.get 替换为 return true; 当用户尝试离开时抛出一个对话框。

最佳答案

非常接近。假设您的参数类似于:

foo=bar

你的 jQuery 得到变成:

$.get('/leave?foo=bar', null, null, null)

你的路由不会抛出语法错误吗(抱歉,Rails 在每个主要版本中都会更改路由,所以这可能适用于 Rails 2.x,但不适用于 3.x)。而不是:

match '/leave' to: 'posts#leave'

使用...

match '/leave' => 'posts#leave'

在你的 Controller 中:

def leave
puts params[:foo]
end

或者,如果您只是想测试参数是否存在:

def leave
puts params.include?(:foo)
end

关于javascript - 在 "beforeunload"上使用 jQuery 调用 Rails Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10360760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com