我想用json为rails应用程序添加一些ajax功能。我想做的只是创建一个接受数据输入的表单。提交表单后,我想获取json格式的响应在不重新呈现表单的情况下更新屏幕。
当我浏览网站时,我还没有找到一个解释这个概念的网站全面。
你能给我指出任何在线来源或任何可以教我逐步实现预期结果的书籍吗?
这是一个非常简单的概念:
- 使用表单助手(假设Rails3)设置
:remote => true
选项 - 确保您的布局中有适当的jQuery UJS/Rails.js文件。它将自动锁定助手在表单上生成的
data-remote
属性,并通过AJAX提交该表单 - 修改控制器操作以返回JSON(见下文)
- 使用JS中提供的回调/钩子来处理响应(见下文)
示例:
# 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
http://itshouldbeuseful.wordpress.com/2011/05/23/creating-ajax-forms-with-rails-3-and-jquery/
如果你具体说明你有什么问题,那会更有帮助——添加:remote => true
是其中的大部分。