레일즈 애플리케이션에서 AJAX를 통합하려는 경우, 새 클릭하면 모달 창과 폼이 열립니다. 유효성 검사 오류가 표시되면 작성 작업에서 오류가 발생하여 new.js.erb 파일을 다시 렌더링해야한다고 생각합니다. 이것이 올바른 접근 방법입니까? 같은 브라우저에서레일즈 : 컨트롤러를 사용하여 js.erb 템플릿 렌더링
def create
@place = Place.new(params[:place])
if @place.save
redirect_to places_path, :notice => "Successfully created place"
else
render "new.js.erb"
end
end
내가 얻을 결과는 JS 이스케이프 텍스트 :
$("#new_grouping").html("<div class=\"modal-header\">\n <a class=\"close\" data- dismiss=\"modal\">×<\/a>\n <h3>Create a new menu section<\/h3>\n<\/div>\n<form accept-charset=\"UTF-8\" action=\"/places/1-mama-s-pizza/groupings\" class=\"simple_form new_grouping\" id=\"new_grouping\" method=\"post\" novalidate=\"novalidate\">
나는 렌더링 블록하지만 행운에 다양한 옵션을 넣어 시도했습니다. 어떤 팁?
좋습니다. 나는 둘 다 확실히 지원할 것이다. 그러나 그것은 나에게 생각이 떠올랐다. 내가 원하는 것을 성취 할 수있는 방법이 없다. POST CREATE 액션이 실패하면 내 화면에 렌더링 된 자바 스크립트로 응답한다. 그것은 리다이렉션이거나 전체 페이지를 다시 렌더링해야합니다. 그 말은 공정한가요? – chourobin
그래, 아니. 그것은 당신이 당신의'new.js.erb'를 쓰는 방법과 실제로 거기에서 무엇을하는지에 달려 있습니다. 페이지의 특정 요소에만 오류 특정 HTML을 삽입하고 전체를 다시 렌더링하지 않을 수 있습니다. 그러나 제 경험상 당신은 많은 것을 명심해야합니다. 따라서 실제로 AJAX로 전체 POST CREATE 작업을 수행하지 않는 것이 좋습니다 – Vapire