Rails CoffeeScript - komunikat dla zalogowanych użytkowników

Witajcie,

potrzebuje zrobić skrypt, który wyciągnie wybrany rekord z bazy danych przy uruchomieniu strony index, ale wyłącznie dla zalogowanych użytkowników.

Wybrany rekord ma się pojawić w komunikacie na stronie index, z chwilą kiedy zostanie załadowana (ale tylko zalogowani użytkownicy -> gem “devise”). Decise już funkcjonuje w aplikacji, pytanie jak to zrobić ?

Stworzyłem plik w /assets/javascripts/index.js.coffee i w nim chciałem wywołać “alert”.

Z góry dzięki za pomoc.

Przekaz do widoku zmienna ktora wskazuje czy ktos jest zalogowany czy tez nie
@is_signed_in = user_signed_in?
Nastenie wygeneruj warunkowo odpowiedni kod javascript. Ew. mozesz zrobic JS ktory za pomoca AJAX-a bedzie sprawdzal czy ktos jest zalogowany i odpowiednio obslugiwal cala sytuacje.

Jesteś w stanie wrzucić mi prosty przykład ?

Z góry dzięki

Nie wiem jaką masz architekturę w aplikacji, ale rozważmy taką możliwość.
Sugerowałbym przekazywanie informacji o tym czy user jest zalogowany poprzez podanie tej informacji do
JavaScriptu.
Na przykład w ten sposób że dla każdej strony w aplikacji będziesz ładował coś w rodzaju configa/helpera. Przykładowo, dla każdej strony mógłby się uruchomić taki kod (choćby w Twoim pliku layout/application)
:coffeescript

  unless window.App 
    window.App = {} 
	
  window.App.PageConfiguration =
    isUserLogged: "#{@is_user_logged}" 

Wtedy każda strona miałaby gwarancję że taki obiekt jak window.App.PageConfiguration istnieje i bezpiecznie może z niej pobrać informację. Oczywiście nie namawiam do tego żeby w aplikacji w dowolnym miejscu w kodzie sięgać bezpośrednio do window.App.PageConfiguration bo w dłuższym czasie bardzo źle wpłynie to na utrzymanie kodu. Chodzi mi tylko o ideę.

Odradzałbym wszelkie dodatkowe odpytywanie serwera poprzez zapytanie AJAX-owe czy user jest zalogowany. Choćby ze względu na kwestie performance-u.

@djaszczurowski dzięki za przykład, udało mi się rozwiązać temat wcześniej, w następujący sposób:

index.html.erb

<h3 id="some_id" data-name="<%= current_user.name %>">Hello</h3>

my.js.coffee

    jQuery ->
  name = $("#some_id").data("name")
  if name
    alert name