警报不能在Rails / ajax情况下工作?

时间:2011-05-08 03:34:21

标签: ajax ruby-on-rails-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 :(得分:0)

您正在渲染“fail.js.erb”,但在您的问题中,您说文件“fail_create.js.erb”包含代码。这是你的问题中的拼写错误还是代码中的问题?

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

答案 1 :(得分:0)

本书说使用jQuery 1.4.2

升级到1.4.4,一切运作良好