我需要一个Rails控制器在创建后调用Javascript(Coffeescript)函数,以便传递创建的新对象的id。问题是该函数从未被调用。
这是controller comments\u controller。rb:
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。咖啡:
$ ->
$('#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 ->
...
新成员成功创建,新成员。id.to\u s包含正确的值,我已经检查过了,但是是控制台。从未访问日志(id)。
更新
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);
正确登录ruby的终端