#javascript #jquery #ruby-on-rails #ruby
#javascript #jquery #ruby-на-рельсах #рубиновый
Вопрос:
У меня есть кнопка в представлении, которая запускает действие контроллера, которое запускает кучу вещей и возвращает массив строк (каждая строка отформатирована как div ex; «Привет»). Затем я хочу взять этот массив и добавить каждый элемент на страницу, на которой была нажата кнопка.
Метод контроллера:
def test
@id = params[:id]
if @id == 'run'
@res = Preflight.run
respond_to do |format|
format.js {render :js => 'run'}
end
else
render @id
end
end
запустите файл .js.erb:
$('#header3').show();
$('#header2').hide();
<%= puts 'made it to the js file' %>
<% @res.each do |line| %>
$('#results').append(<%= line %>);
<% end %>
Я знаю, что @res возвращает массив по назначению, я не могу запустить JS. Есть идеи? Он не запускает show / hide, поэтому я думаю, что ошибка связана с тем, как я пытаюсь вызвать файл js, но я не уверен, что я здесь делаю неправильно.
Комментарии:
1. можете ли вы показать нам, как выглядит js, который появляется в вашем поле зрения после нажатия кнопки?
2. Вам действительно нужно визуализировать файл JavaScript с использованием erb?
3. Вероятно, нам понадобится вывод из консоли javascript вашего браузера. Как вы выполняете этот JavaScript в браузере? Когда запрос ajax возвращает строку визуализированного кода javascript, вы ее оцениваете?
Ответ №1:
Используете ли вы эту remote: true
опцию в своем HTML, когда вызываете test
действие?
Комментарии:
1. Нет, я использую ajax.
Ответ №2:
Помните, что когда вы хотите вывести строку JS, вам нужно заключить ее в кавычки:
$('#results').append("<%= @res.join() %>");