Kick Rails书的Ch8有一个Ajax表单示例,除了它不输出无效输入的警报外,它工作正常。
控制器代码为:
def create
@comment = @article.comments.new(params[:comment])
if @comment.save
respond_to do |format|
format.html { redirect_to @article, :notice => 'Thanks for your comment' }
format.js
end
else
respond_to do |format|
format.html { redirect_to @article, :alert => 'Unable to add comment due to errors in your input'}
# logger.info("#{Time.now} Ajax invalid validation
##{@comment.errors.full_messages}!")
format.js { render 'fail.js.erb' }
end
end
end
"fail_create.js.erb"文件包含一行;
alert("<%= @comment.errors.full_messages.to_sentence %>");
一些好心的人可以解释为什么这不起作用,谢谢
你正在渲染"fail.js.erb",但在你的问题中你说文件"fail_create.js.erb"包含代码。这是您问题中的错别字还是您的代码中的问题?
此外,在 Rails 中使用 RJS 被认为是不好的形式。如果你把这个例子当作一种学习体验,对你来说更有力量,但它在 Rails 社区中是一个失败的实验。Javascript应该独立存在(最好是不显眼地添加到站点中)。
书中说要使用jQuery 1.4.2
升级到 1.4.4 并且一切运行良好