Dostęp do zmiennych Rails w JavaScript

Mam kalendarz w jQuery w którym chcę sobie ustawić pewne rzeczy korzystając z wartości zmiennych, które przychodzą z kontrolera. Jest to czysto wizualna rzecz bez interakcji z serwerem. Jak to poprawnie definiować. Tego typu zapis jest chyba trochę słaby…(??)

<script type="text/javascript"> some_var = <%= rails_var %> </script>

Możesz korzystać ze zmiennych kontrolera w plikach js jeśli skorzystasz z szablonów js.erb. W tym railscascie pokazane jest jak ich użyć na przykładzie dynamicznego menu:
http://railscasts.com/episodes/88-dynamic-select-menus

możesz przez rjs jeśli chcesz mieć dynamicznie.

page['some_var'].value = @rails_val

lub

page.call  "$('#datarange_input').val('#{@rails_var}')"

za drugie nie dam sobie ręki obciąć

[quote=newman]Mam kalendarz w jQuery w którym chcę sobie ustawić pewne rzeczy korzystając z wartości zmiennych, które przychodzą z kontrolera. Jest to czysto wizualna rzecz bez interakcji z serwerem. Jak to poprawnie definiować. Tego typu zapis jest chyba trochę słaby…(??)

<script type="text/javascript"> some_var = <%= rails_var %> </script>
[/quote]
Jeśli masz kalendarz w jQuery to przydałaby się również reprezentacja w czystym HTML dla tych, którzy mają wyłączony JavaScript.

My robimy to tak: w czystym HTML wstawiamy jakąś postać danych dostępną dla każdego klienta, np. listę wydarzeń:

[code=html]

  • prosty format daty
  • ...
[/code] Jeśli użytkownik ma włączony JavaScript to ukrywamy taki fragment HTML za pomocą CSS. Jednocześnie za pomocą jQuery możemy z ukrytego elementu wyciągnąć wszelkie niezbędne dane dla dynamicznej kontrolki.

Dzięki za podpowiedzi!
Oczywiście, przy wyłączonym JS aplikacja będzie funkcjonalna (z małymi ograniczeniami :wink: