ruby-on-rails - Rails/Ajax/错误处理

标签 ruby-on-rails ajax forms error-handling

因此,有很多关于如何执行此操作的文章,但是肯定有最佳实践……而且我对筛选出愚蠢的解决方案,好的解决方案和最佳的解决方案知之甚少。

我只是想通过ajax提交表单(在对话框中)并像不使用ajax一样将错误找回...这意味着我喜欢rails标准错误处理/flash消息/标签类。

  • 是重新加载整个部分文件的最佳方法吗?
  • 是将.js.erb(或咖啡)用于部分原料的最佳方法吗? (如果是这样,您能解释一下如何使用这些部分吗?
  • 是将JSON解析回表单的最佳方法吗?

  • 我的[有限]知识库中还缺少什么?

    最佳答案

    我要做的方法是渲染一个create.js.erb View ,例如:

    $("#my_dialog").replaceWith("<%= j(render 'dialog') %>");
    

    其中_dialog.html.erb包含对话框内容的HTML。
    <div id="my_dialog">
      <!-- flash stuff etc -->
      <%= form_for ... %>
      <!-- ... -->
      <% end %>
    </div>
    

    例如,您的 Controller 将如下所示:
    class EntriesController < ApplicationController
      def create
        @entry = Entry.new(params[:entry])
        respond_to do |format|
          if @entry.save
            format.html { redirect_to @entry }
            format.js {} # this will render create.js.erb for js requests
          else
            format.html { render action: "new" }
            format.js {} # this will render create.js.erb for js requests
          end
        end
      end
    end
    

    顶峰就像'dat。如果您不想重新加载整个表单,可以在.js.erb中进行更新或执行任何操作

    关于ruby-on-rails - Rails/Ajax/错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16718937/

    相关文章:

    ruby-on-rails - 如何从 Rails 获取 HTTP_HOST?

    AJAX + 希伯来字母

    javascript - 当 WebService 托管在 Azure 云上时,Jquery AJAX 调用失败

    javascript - 有没有办法让电子邮件中的按钮远程发送数据?

    ruby-on-rails - Rails 如何优化我的网站?

    ruby-on-rails - 如何在Ruby on Rails上下载YouTube视频

    ruby-on-rails - 在 env.rb 之外需要 Cucumber-rails。其余的加载被推迟到 env.rb 被调用

    javascript - Rails 4 - 从 ajax 更新表单中的值或数据属性并在 if 语句中使用此更新的值

    html - 在 Sinatra 表单中格式化日期字段

    javascript - 使用 jQuery 清除 &lt;input type ='file'/>