2012-09-30 2 views
1

У меня очень длинная операция, которая заканчивается огромным массивом. Этот массив передается как объект Ruby, в файл js.erb, который делает частичное его использования:Установить переменную javascript из частичного Ruby

$('#xxx').html("<%= escape_javascript(render('part', testVar: @fromServer)) %>"); 

Это все идет хорошо, но я хотел бы, чтобы иметь возможность сортировки столбцов в результирующей таблице, не имея для повторной операции. Это должно быть легко, но я не могу получить результирующую переменную в частичном, чтобы она сохранялась. Моя цель - иметь тег сценария в частичном:

<script type="text/javascript"> 
    $("#column").click(function(){ 
     $.ajax({ 
       type : 'POST', 
       url : '/sort_column', 
       data : {data: jsVar}, 
       dataType : 'script' 
     }); 
    }); 
</script> 

Как бы я это сделал?

ответ

1

Просто оберните то, что вам нужно, от рубина в <% =%>. Например:

data : {data: "<%= testVar %>"}, 

Поскольку документ будет отправлен рубиновому интерпретатору, он будет содержать ваше значение testVar. Кроме того, пожалуйста, используйте нотацию случайного змея вместо случая верблюда. Это общее соглашение в рубине.

+0

По какой-то причине сценарий просто не отображается. Есть ли в Ruby правило об рендеринге скриптов в частичных? –

+0

Если вы не получаете ошибок, то, вероятно, ваша логика контроллера работает не так, как ожидалось, и не отвечает js, можете ли вы добавить метод контроллера к вопросу? –

Смежные вопросы