Cześć, piszę sobie aplikację, gdzie user może wrzucać filmy i oceniać je.
Chciałem skorzystać z AJAX’a i jQuery Raty. Biblioteka jest bardzo prosta, wszystko opiera się na stworzeniu krótkiego skryptu.
Próbowałem napisać go normalnie w assetach, za pomocą CoffeScriptu, lecz miałem (i z coffe mam nadal) probelm i rozwiązałem go inaczej.
Wrzuciłem do widoku taki oto kod:
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$('#star').raty({
path: '/img-star',
<% user_rate = get_user_video_rate(@video.rates) %>
<% if user_rate > 0 %>
score: <%= user_rate %>,
readOnly: true,
<% end %>
click: function(score, evt) {
$.get('<%= video_path @video %>/rate/' + score, function(data) {
if(data.indexOf('not_again') == -1 && data.indexOf('not_allowed') == -1)
$('#star').html($('#star').html() + '<br />' + data);
});
}
});
});
</script>
Wszystko pięknie działa, ale wiem, że nie powinno tego się tak robić. Korzystam z Devise, get_user_video_rate to helper.
Problem w tym, że nie wiem jak za pomocą coffiego z zewnątrz poprawnie ustawić ścieżkę $.get’a. Ogólnie nie mam pojęcia czy to jest “ruby way” i nie podoba mi się to.
Jak powinno się to robić, by wszystko było na swoim miejscu?
Pozdrawiam.