Это код jplayer:передавая переменную js.erb файл
песни/show.html.erb
<% content_for :mp3script do %>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer({
ready: function() {
$(this).jPlayer("setMedia", {
mp3: "<%= @song.mp3.url %>"
}).jPlayer("play");
},
});
});
//]]>
</script>
<% end %>
У меня есть это на голову application.html.erb
:
<%= yield :mp3script %>
Все работает нормально, но немного уродливо разместить JavaScript внутри html напрямую, поэтому я хочу поместить его в файл .js.erb
.
Когда я положил его в mp3script.js.erb он дает эту ошибку:
undefined method `mp3' for nil:NilClass
Если мне удастся поставить JavaScript в .js.erb
является Javascript application.js будет перекомпилировать каждый раз изменение ссылки в файле? Я думаю, что это плохо, не так ли?
Можете ли вы проверить, что действие 'songs # show' определяет переменную' @ song'? –
@VenkatCh Очевидно, что именно он говорит, что работает приложение 'app/views/songs/show.html.erb'. – meagar
@VenkatCh да, как meagar сказал, – anouar