2016-05-04 2 views
0

Ich benutze ein Js Live-Chat-Widget auf meiner Rails-Site und ich möchte ein wenig Javascript zu meiner Vorlage hinzufügen, nachdem jemand sich anmeldet (es ist im Grunde sagt mir, ich habe hat einen meiner Benutzer von einem bestimmten Typ bekommen, der die Seite betrachtet).Rails: Code in Sicht sofort nach Sign_in durch Devise

Ich denke, dass

after_sign_in_path_for 

Scheint, wie der richtige Ort, aber wie gehe ich einen Parameter (zB

{new_session:true} 

) ein Verfahren, das wie folgt aussieht:

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 

dh

root_path(new_session:true) 

ist einfach, aber was in aller Welt mache ich mit dem super, stored_location_for und request.referer ...?

scheint eine wirklich hässliche Art und Weise, es zu tun, auf jeden Fall ...

eine bessere Idee?

Gibt es einen vernünftigen Weg, dies in der Entwicklung zu tun. z.B.

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

Antwort

0

Dies ist eine schreckliche Hack und ich mich freuen würde, wenn jemand mit einem besseren Weg kommt ... aber ...

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

Grundsätzlich macht den Job benötigt. Offensichtlich, wenn sie mehrere Seiten treffen, bevor die 5 Sekunden abgelaufen sind, wird der Code mehrere Male gepostet ...