【发布时间】:2014-10-02 15:31:36
【问题描述】:
我有一个部分表单,在一个 id 为“chapcmets”的 div 中,带有一个提交标签 -
<%= f.submit "Post", remote: true %>
在正确的视图文件夹中,我有 create.js.erb -
$('#chapcomments').html("<%=j render 'shared/chap_comment_complete' %>");
在控制器中我有格式块,其中包括
def create
@chap_comment = current_user.chap_comments.build(chap_comment_params)
respond_to do |format|
if @chap_comment.save
format.js
format.html {redirect_to chapter_path(@chap_comment.chapter)}
else
format.html { render :new }
format.json { render json: @chap_comment.errors, status: :unprocessable_entity }
end
end
end
...但我没有得到 ajax 行为...
我哪里错了?
【问题讨论】:
-
您应该将
render 'partialname'部分括在括号中。或者,试试<%=j render 'shared/chap_comment_complete' %> -
嗨,谢谢 mccannf。也刚刚阅读了this,因此已将代码移动到正确视图文件夹中的 create.js.erb 中。现在没有得到错误,只是没有得到 ajax 行为。最令人困惑。
-
您的 Rails 日志显示什么?是渲染 create.js.erb 吗?
-
不,它似乎正在跳到 format.html。我已经编辑了问题以包含整个控制器操作。顺便说一句,谢谢。
-
不确定,但我认为
remote: true部分应该在form_for声明中,而不是提交。
标签: javascript ruby-on-rails ajax