在Rails/ajax情况下警报不起作用?

3

《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 %>");

有没有好心人能解释一下为什么这个不起作用,谢谢。
2个回答

0

你正在渲染 "fail.js.erb",但在你的问题中说文件 "fail_create.js.erb" 包含了代码。这是你问题中的笔误还是你代码中的问题?

此外,在 Rails 中使用 RJS 被认为是不好的形式。如果你正在通过这个例子来学习,那么更加努力,但它是 Rails 社区中的一个失败实验。Javascript 应该独立存在(最好以不引人注目的方式添加到网站中)。


只是一个错别字,警报仍然无法正常工作。在Rails 3中包含Ajax功能的最佳方法是什么? - Alan

0

书上说要使用jQuery 1.4.2

升级到1.4.4后一切正常运行


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接