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



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 并且一切运行良好

相关内容

  • 没有找到相关文章

最新更新