Ruby on rails Rails-在控制器操作后执行JS

Ruby on rails Rails-在控制器操作后执行JS,ruby-on-rails,Ruby On Rails,我有一个处理用户登录的登录控制器。它使用单点登录-因此用户看不到登录,他们将被重定向到他们试图访问的页面,例如,如果他们有一个书签链接 我想为分析执行一个js代码段。但是我只想执行一次,那是在通过登录控制器登录之后 我尝试在登录控制器中添加响应标头: response.headers['user_logged_in'] = "true" 我将我的JS放在application.html.erb中,以检查此标题-但标题不在那里: if @user && request.heade

我有一个处理用户登录的登录控制器。它使用单点登录-因此用户看不到登录,他们将被重定向到他们试图访问的页面,例如,如果他们有一个书签链接

我想为分析执行一个js代码段。但是我只想执行一次,那是在通过登录控制器登录之后

我尝试在登录控制器中添加响应标头:

response.headers['user_logged_in'] = "true"
我将我的JS放在application.html.erb中,以检查此标题-但标题不在那里:

if @user && request.headers['user_logged_in'] == "true"

最好的方法是什么?

我认为你的情况非常适合使用

你在闪光灯中放置的任何东西都将暴露在下一个动作中,然后被清除

因此,您可以:

类会话控制器 def创建 flash[:signed_in]=真 终止 终止 然后,在application.html.erb中,您可以执行以下操作:

...
我认为你的处境很好用

你在闪光灯中放置的任何东西都将暴露在下一个动作中,然后被清除

因此,您可以:

类会话控制器 def创建 flash[:signed_in]=真 终止 终止 然后,在application.html.erb中,您可以执行以下操作:

...
标头不存在的原因是,客户端接收到重定向响应,该响应基本上只是一个3XX状态码和一个位置标头,然后在位置标头中发送一个新的URI请求。客户端将不会传回您的自定义标头。这就是Cookie的设计目的。没有标头的原因是因为客户端接收到重定向响应,该响应基本上只是一个3XX状态码和一个位置标头,然后在位置标头中发送一个新的URI请求。客户端将不会传回您的自定义标头。这就是饼干的设计目的。