내 자바 스크립트가 실행되지 않은 이유를 알아낼 수 없습니다 (실제로 실행되지 않았습니다).자바 스크립트가 실행되지 않습니다.
/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}"을 추가하고 제거했습니다. "upload :.js.erb"에서 "ajax : success"대신 "page : change"및 "turbolinks : load"를 시도했습니다. "_uploadform.js.erb"("upload.js.erb"대신)에서 Java-Ready 기능을 모두 시도했습니다. 나는 link_to (show.html.erb)에서 "remote : true"를 시도했다. 그러나 js.erb (alert 만 보임)를 실행한다. 4.2.1에서 4.2.7.1로 Rails를 업데이트하고 application.js에서 "// = require jquery.turbolinks"를 시도했습니다 (위의 모든 문서 준비 함수 사용).
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)
이 제발 도와주세요 : 내 로그에서 볼 수 있듯이
은, 자바 스크립트로 응답 나던 것 같다. 나는 왜 이것이 어떤 식 으로든 작동하지 않는다는 것을 이해하지 못한다.
나는'ajax : success' 선택기가 있다고 생각하지 않습니다. 당신은'$ (document) .ajaxSuccess'를 말 했나요? – vlaz
아니요. 제가 어디서 그걸 얻을 수 있는지 모르지만, "turbolinks : load"나 "page : change"로는 작동하지 않습니다. 그래서, 예, 아마도 "아약스 : 성공"은 잘못되었지만 다른 선택자들 역시 효과가 없습니다. –
어떤 차이가 있는지 모르겠지만'application.js'에서'jquery' 다음에'jquery_ujs'를로드하려고 시도합니다. –