По сути, вам не хватает кавычек в вашем JavaScript во второй версии.После запуска рубина созданная страница содержит тег сценария с чистым JavaScript.Этот javascript выглядит следующим образом:
var filepath= /flexpaper/some_exam.swf
var flashvars = {
SwfFile : escape(filepath), ....
Обратите внимание, что вы присваиваете значение переменной filepath, но оно не заключено в кавычки.Это не допустимый JavaScript.Если вы исправите это следующим образом, оно должно работать:
<% content_for :head do %>
<script type="text/javascript">
var filepath= "<%= "/flexpaper/" + @exam.filename + ".swf".to_s %>";
var flashvars = {
SwfFile : escape(filepath), ....
Пока я занимался этим, я добавил точку с запятой и исправил ваш отступ - вы обнаружите, что при правильном отступе вашего кода javascript он становится порядкаВеличину проще отлаживать.Этот код ruby создаст javascript, который выглядит примерно так:
<script type="text/javascript">
var filepath= "/flexpaper/some_exam.swf";
var flashvars = {
SwfFile : escape(filepath), ....
Хитрость для выявления ошибок, подобных этой, заключается в создании источника просмотра в вашем браузере и внимательном рассмотрении создаваемого javascript.