입력란 중 하나를 클릭 할 때마다 계속 저장하는 레일 앱이 있습니다./posts/new에서 시작합니다. 무언가를 작성하고 입력을 클릭하면 양식이 아약스를 통해 제출됩니다./posts/new의 양식 속성은/post/1/edit의 양식 속성으로 변경됩니다 (1은 임의의 숫자가 될 수 있음). 그리고 url은/post/1/edit에 대한 업데이트입니다 (다시 말하면 1은 임의의 숫자 일 수 있습니다). 양식이/후/1/편집으로 다시 제출 및 업데이트 양식 속성, 나는 다음과 같은 오류 얻을레일스 아약스 양식 작업 다시 쓰기 경로 오류
: 구글 크롬 콘솔에서
No route matches [POST] "/posts/4"
을, 나는 다음과 같은 오류가 발생합니다 :
POST http://0.0.0.0:3000/posts/1 404 (Not Found)
여기 내 코드입니다.
/app/asset/javascripts/posts.js
는$(document).ready(function() {
$('.new_post').on('focusout', function(ev) {
$('.new_post').submit();
});
$('.edit_post').on('focusout', function(ev) {
$('.edit_post').submit();
});
});
/app/controllers/post_controller.rb, /app/models/post.rb 및 /config/routes.rb 컨트롤러 모델이다 게시물의 비계에서 생성 된 경로. 또한
<%= form_for(@post, :remote => true) do |f| %>
<% if @post.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2>
<ul>
<% @post.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :description %><br />
<%= f.text_area :description %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
응용 프로그램/뷰/글/_form.html.erb, 몇 가지 더.
1)/post/1/edit로 가면 편집하고 입력란을 클릭하십시오. 라우팅 오류가 없습니다.
2) 포스트/1/편집 페이지의 생성 된 html과 폼 액션에 대한 포스트/아약스 업데이트 후에 생성 된 html은 동일합니다.
도움을 주시면 감사하겠습니다.
감사합니다.
나는 그 해결책을 시도해 보았지만 그것을 잘못 구현 했음에 틀림 없다. 왜냐하면 그 방법을 바꾸는 것이 효과가 있었기 때문이다. 감사합니다. – user2517182