繁体   English   中英

Rails:在通过设计登录后立即在视图中包含代码

[英]Rails: include code in view immediately after sign_in through devise

我在Rails网站上使用了js实时聊天小部件,有人登录后想在模板中添加一些javascript(这基本上是在告诉我我有一个特定类型的用户在浏览该网站) 。

我在想

after_sign_in_path_for 

似乎在正确的位置,但是如何传递参数(例如

{new_session:true}

)的方法如下所示:

def after_sign_in_path_for(resource)
  sign_in_url = new_user_session_url
  if request.referer == sign_in_url
    super
  else
    stored_location_for(resource) || request.referer || root_path
  end
end

root_path(new_session:true)

很简单,但是我到底要怎么处理super,storage_location_for和request.referer ...?

无论如何,这似乎是一种非常丑陋的方式...

还有更好的主意吗?

有没有一种明智的方法可以在设计中做到这一点。 例如

-if current_user.just_signed_in?
  :javascript
    _blah_de_blah.blah{blah;}

这是一个可怕的骇客,如果有人想出一种更好的方法,我将非常高兴...但是...

-if current_user.current_sign_in_at > Time.now - 5.seconds
    :javascript  
      #some javascript code here...

基本上可以完成所需的工作。 显然,如果他们在那5秒钟内点击了多个页面,它将多次发布代码...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM