我想使用 json 将一些 ajax 功能添加到我的 Rails 应用程序中。 我想做的只是创建一个接受数据输入的表单。 提交表单后,我想获取 json 格式的响应 更新屏幕而不重新呈现表单。
当我浏览网站时,我还没有找到解释这个概念的网站 全面。
您能否向我指出任何可以教我逐步实现预期结果的在线资源或书籍?
最佳答案
这是一个非常简单的概念:
- 使用表单助手(假设为 Rails 3)设置
:remote => true
选项。 - 确保您的布局上有适当的 jQuery UJS/Rails.js 文件。它将自动锁定助手在表单上生成的
data-remote
属性,并通过 AJAX 提交该表单。 - 修改您的 Controller 操作以返回 JSON(见下文)。
- 使用 JS 中提供的回调/ Hook 来处理响应(见下文)。
示例:
# app/controllers/foo_controller.rb
def create
@foo = Foo.new(params[:foo])
if @foo.save
respond_to do |format|
format.html
format.json { render :json => @foo }
end
else
respond_to do |format|
format.html { render :action => :new }
format.json { render :json => { :errors => @foo.errors } }
end
end
end
# app/assets/javascripts/application.js.coffee
$(document).on 'ajax:success', 'form[data-remote]', (xhr, data, status) ->
# do something with `data`, which is a JS object from your JSON response
# console.log data
关于jquery - Rails - 有什么关于在 jquery 中通过 json 提交表单的好例子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9746999/