Tôi đang chạy jQuery ở app/assets/javascripts/ticket.js.coffee
cho một chế độ xem cụ thể. Mỗi lần tôi truy cập trang, trình duyệt sẽ hiển thị lỗi này - không có đề cập đến lỗi này ở bất kỳ nơi nào trực tuyến.Cú phápError: lỗi POST_IF không mong muốn Rails
(localhost: 3000/Vé/mới):
SyntaxError: unexpected POST_IF
Extracted source (around line #6):
3: <head>
4: <title>Ops2</title>
5: <%= stylesheet_link_tag "application", :media => "all" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8: </head>
9: <body>
tập tin của trang ném lỗi -
app/views/vé/_form.html.erb:
<%= form_for(@ticket) do |f| %>
<% if @ticket.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@ticket.errors.count, "error") %> prohibited this ticket from being saved:</h2>
<ul>
<% @ticket.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :school_id %><br />
<%= f.collection_select :school_id, School.order(:name), :id, :name, include_blank: true%>
</div>
<div class="field">
<%= f.label :location_id %><br />
<%= f.grouped_collection_select :location_id, School.order(:name), :locations, :name, :id, :name, include_blank: true%>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
app/assets/javascripts/application.js c ontains:
//= require jquery
//= require jquery_ujs
//= require_tree .
tập tin Coffeescript với jQuery -
ứng dụng/tài sản/Javascripts/tickets.js.coffee:
$ ->
$('#ticket_location_id').parent().hide()
locations = $('#ticket_location_id').html()
$('#ticket_school_id').change ->
school = $('#ticket_school_id :selected').text()
options = $(locations).filter("optgroup[label='#{school}']").html()
if options
$('#ticket_location_id').html(options)
$('#ticket_location_id').parent().show()
else
$('#ticket_location_id').empty
$('#ticket_location_id').parent().hide()
Các lỗi POST_IF đã được giải quyết bằng cách thụt lề các if/else
báo cáo trong kịch bản cà phê của tôi! (xem câu trả lời dưới đây để biết chi tiết) Không có lỗi và tải trang!
Bạn có chắc chắn đó là tất cả các mã coffeescript bạn có? Thay thế ** // = require_tree. ** bằng ** // = yêu cầu vé ** và cho tôi biết nếu bạn vẫn gặp sự cố tương tự. Lỗi bạn có là phân tích cú pháp coffeescript sai, nếu điều đó không hiệu quả, hãy thử xóa tệp ticket.js.coffee để xem nó có hoạt động hay không, vì vậy ít nhất chúng ta có thể nhận ra rằng vấn đề nằm trong tệp ticket.js .coffee – rorra
Tôi thứ hai xóa // = require_tree. Nó đã gây ra cho tôi tất cả các loại đau trong quá khứ. Tốt hơn hết là để sperate tất cả các javascripts của bạn vào các thư mục và sau đó yêu cầu các thư mục đó thì nó là sử dụng // = require_tree. – rovermicrover
thay thế // = require_tree. với // = yêu cầu vé mang lại cho tôi lỗi tương tự, không thay đổi. nếu tôi xóa jQuery trong tệp ticket.js.coffee, các trang của tôi tải chính xác. trên thực tế, nếu tôi xóa câu lệnh 'if' và' else' trong jQuery, trang sẽ tải nhưng jQuery vẫn không chạy. – Devin