Beginning Rails的第8章书中有一个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 %>");
有些人可以解释为什么这不起作用,谢谢
答案 0 :(得分:0)
您正在渲染“fail.js.erb”,但在您的问题中,您说文件“fail_create.js.erb”包含代码。这是你的问题中的拼写错误还是代码中的问题?
此外,使用RJS在Rails中被认为是不好的形式。如果你正在通过这个例子作为学习经验给你带来更多的力量,那么这在Rails社区中是一个失败的实验。 Javascript应该独立存在(最好不加引人注意地添加到网站中)。
答案 1 :(得分:0)
本书说使用jQuery 1.4.2
升级到1.4.4,一切运作良好