Привет, я полностью застрял в этом и искал какую-то помощь.
Когда я делаю показ на своем объекте simulation
, я хочу, чтобы какой-то javascript начинал опрос каждые десять секунд, чтобы асинхронно вызывать simulation#update
.
Я хочу сделать это respond_to
, как таковой:
def show
@simulation = Simulation.find(params[:id])
respond_to do |format|
format.js
format.html { redirect_to simulation_url } # This causes problems
end
end
Итак, у меня был бы update.js.erb
, который делает что-то вроде строки (извините за coffeescript)
$.ajax({
type: "PUT",
url: "/simulations/#{params}"
})
$('#sim_div').html("<%= j (render @simulation) %>");
setTimeout(callUpdate, 10000)
return
Я не могу получить этот частичный javascript, который будет вызываться, если я включу format.html
, javascript не запустится, и я получаю ошибку формата, и если я включу эту строку, тогда получаю неизвестную ошибку формата.
Каков правильный путь? Я пробовал тонны решений, используя coffeescript в конвейере активов, и weird включает и встроенный javascript, чтобы не было adue.
Для ясности мой взгляд таков:
<%= render 'simulation' %>
<%= link_to 'Back', simulations_path %>
и частичное, что загружаются script и view:
<div id="sim_div">
<h1><%= @simulation.identifier %></h1>
<h4 class="offset-col-sm-1">Dimensions: <%= @simulation.x_size %>x<%= @simulation.y_size %></h4>
<h4 class="offset-col-sm-1">Verdict: <%= @simulation.verdict %></h4>
<table class="table table-bordered">
<thead>
<tr>
</tr>
</thead>
<tbody>
<% @simulation.state.each do |row| %>
<tr>
<% row.each do |current| %>
<td class="text-center"><%= current %></td>
<% end%>
</tr>
<% end %>
</tbody>
</table>
<br>
</div>