Я не могу понять, почему мой javascript не выполнен (и его действительно не выполняется).Javascript не исполняется
/app/assets/javascripts/application.js:
//= require jquery
//= require bootstrap-sprockets
//= require turbolinks
//= require jquery_ujs
//= require_tree .
/app/controllers/project_controller.rb:
def upload
@projects = Project.all.order(updated_at: :desc)
@project = Project.find(params[:id])
respond_to do |format|
format.html
format.js {render layout: false}
end
end
/app/views/projects/show.html.erb :
<%= link_to project_upload_path, :project => @project.id, class: "btn btn-default" do %>
Upload
<%= glyph("plus") %>
<% end %>
/app/views/projects/upload.html.erb:
<div class="row">
<div class="col-xs-12">
<h2>Upload File to <%= @project.name %> project</h1>
</div>
<br>
<div class="col-xs-12">
<%= render :partial => "uploadform", :action => "savefile" %>
</div>
</div>
/app/views/projects/_uploadform.html.erb:
<%= form_for :upload, url: {action: "savefile"}, :multipart => true do |f| %>
<%= f.hidden_field(:project_id, :value => params[:id]) %>
<%= f.file_field :file, input_html: { hidden: true }, label: 'Upload Attachment' %>
<input id="file-display" class="input-large uneditable-input" type="text">
<%= f.submit "Save File", :class => "btn btn-default btn-file", :id => "upload-btn" %>
<% end %>
/app/views/projects/upload.js.erb:
$(document).on('ajax:success', function() {
alert("Test");
});
Я попробовал все. Я добавил и удалил «{render layout: false}» в моем контроллере. Я попробовал «page: change» и «turbolinks: load» в моем upload.js.erb (вместо «ajax: success»). Я пробовал все функции Java-Ready в «_uploadform.js.erb» (вместо «upload.js.erb»). Я попробовал «remote: true» в link_to (show.html.erb) - но тогда он выполняет только js.erb (только появилось предупреждение). Я также обновил Rails с 4.2.1 до 4.2.7.1 и попытался «// = потребовать jquery.turbolinks» в application.js (со всеми вышеперечисленными функциями документа).
Как вы можете увидеть в моем журнале, кажется, что оно не реагирует с Javascript:
Started GET "/projects/upload/20" for 127.0.0.1 at 2016-10-05 14:05:48 +0200
Processing by ProjectsController#upload as HTML
Parameters: {"id"=>"20"}
Project Load (0.0ms) SELECT "projects".* FROM "projects" WHERE "projects"."id" = ? LIMIT 1 [["id", 20]]
Rendered projects/_uploadform.html.erb (0.0ms)
Rendered projects/upload.html.erb within layouts/application (2.4ms)
Completed 200 OK in 327ms (Views: 324.8ms | ActiveRecord: 0.0ms)
Пожалуйста, помогите мне. Я не понимаю, почему это никоим образом не работает.
Я не думаю, что есть 'Аякс: success' селектор. Вы имели в виду '$ (document) .ajaxSuccess' – vlaz
Нет. Я не знаю, где это получить, но он не работает с« turbolinks: load »и« страница: change ». Итак, да, возможно, «ajax: success» ошибочен, но другие селекторы тоже не работают. –
Я не знаю, имеет ли он какое-либо значение, но попытайтесь загрузить 'jquery_ujs' после' jquery' в ваш 'application.js' –