만든 새 오브젝트의 ID를 전달하기 위해 만든 후에 자바 스크립트 (Coffeescript) 함수를 호출하려면 레일즈 컨트롤러 중 하나가 필요하다. 문제는 함수가 호출되지 않는다는 것입니다.레일즈 컨트롤러가 자바 스크립트 함수를 호출하지 않는다
class CommentsController < ApplicationController
def create
newcomment = Comment.create!(comment: params[:comment], user_id: current_user.id, rutina_id: params[:id])
respond_to do |format|
format.js { render :js => "create_comment(" + newcomment.id.to_s + ");" }
end
end
...
그리고 내 커피 스크립트 파일 rutinas.js.coffee : 여기
는 컨트롤러 comments_controller.rb의$ ->
$('#dias').change ->
...
$('#diasedit').change ->
...
$('[id^="arrowUp"]').click ->
...
$('[id^="arrowDown"]').click ->
...
$('[id^="eliminar_com_"]').click ->
...
$('[id^="editar_com_"]').click ->
...
create_comment = (id) ->
console.log(id)
newComment = $('#com_model').clone();
newComment.removeClass('hidden');
newComment.find("td#content_com_model").html($('#comment').val());
today = new Date();
dd = today.getDate();
mm = today.getMonth()+1;
yyyy = today.getFullYear();
if(dd<10)
dd = '0'+dd
if(mm<10)
mm = '0'+mm
today = yyyy + '-' + mm + '-' + dd;
newComment.find("small#date_com_model").html(today);
newComment.find("small#date_com_model")
newComment.insertAfter($('#com_model'))
$('#printBtn').click ->
...
if document.getElementById("rutinas-list") != null
i = 0
while i < document.getElementById("rutinas-list").childElementCount
i += 1
do(i) ->
...
cambia_voto =(element, cambio) ->
...
$("#rutina_privacy_lvl").change ->
...
은 newcomment이 성공적으로 작성하고 newcomment.id.to_s 오른쪽 값을 포함한다 , 나는 그것을 확인했지만 console.log (id)에 도달하지 못했습니다.
UPDATE
remote: true
는 형태로 설정된다. 사실, 내가 제대로 루비의 터미널에 기록됩니다
respond_to do |format|
format.js {
logger.debug "create_comment(" + newcomment.id.to_s + ");"
render :js => "create_comment(" + newcomment.id.to_s + ");"
}
end
그리고 create_comment(41);
'newcomment'를 얻을 수있는'create.js.erb' 파일이 있어야한다고 생각합니다. – Gabbar
브라우저의 네트워크 속성을 살펴보십시오. 여전히 이상한 경우 여기에 붙여 넣으십시오. – DonPaulie
전체 js.coffee 파일을 붙여 넣으십시오. –