Xin chào, tôi hoàn toàn bị mắc kẹt về vấn đề này và tìm kiếm sự trợ giúp.Lỗi định dạng không xác định với respond_to trong Rails. Cố gắng thực hiện chính xác việc bỏ phiếu để cập nhật
Khi tôi thực hiện một chương trình trên đối tượng của mình simulation
Tôi muốn một số javascript để bắt đầu bỏ phiếu sau mỗi mười giây, để gọi simulation#update
không đồng bộ.
Tôi muốn làm điều này bằng respond_to
, như vậy:
def show
@simulation = Simulation.find(params[:id])
respond_to do |format|
format.js
format.html { redirect_to simulation_url } # This causes problems
end
end
Vì vậy, tôi sẽ có một update.js.erb
rằng làm điều gì đó dọc theo dòng (xin lỗi vì sự coffeescript)
$.ajax({
type: "PUT",
url: "/simulations/#{params}"
})
$('#sim_div').html("<%= j (render @simulation) %>");
setTimeout(callUpdate, 10000)
return
tôi có thể Không nhận được javascript này một phần được gọi là nếu tôi bao gồm format.html
javascript không chạy và tôi gặp lỗi định dạng và nếu tôi bao gồm dòng đó thì tôi gặp phải lỗi định dạng không xác định.
Whats cách chính xác để giải quyết vấn đề này? Tôi đã thử tấn của các giải pháp bằng cách sử dụng coffeescript trong đường ống tài sản và lạ bao gồm và javascript nội tuyến để không có adue.
Để làm rõ quan điểm của tôi là:
<%= render 'simulation' %>
<%= link_to 'Back', simulations_path %>
và một phần là kịch bản và xem tải là:
<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>
Xin lỗi đó là những gì tôi đang làm .. Tôi có mã đó trong 'show.js.erb' để định dạng nên gọi cả' show.html.erb' và 'show.js.erb' tuy nhiên chỉ có html được gọi khi tôi đang sử dụng 'response_to' được hiển thị ở trên trong' simulation # show' – NNNNNNNNNNDelicious
Ahh Tôi đã đọc sai câu hỏi của bạn, tôi sẽ chỉnh sửa câu trả lời của tôi. –
Vì vậy, tôi thấy ý của bạn, thay vì hiển thị chế độ xem, chỉ hiển thị phần JS có mã của bạn và hiển thị phần html, tuy nhiên bất cứ khi nào tôi đến 'hiển thị' mô phỏng, tôi nhận được yêu cầu html, chứ không phải js, vì vậy tôi không bao giờ thực hiện JS đó, làm thế nào tôi có thể giải quyết vấn đề này? – NNNNNNNNNNDelicious