Rails 3:在rails中使用JSON响应REST-ful操作的正确方法是什么?

时间:2010-04-03 20:31:18

标签: ruby-on-rails json api idioms ruby-on-rails-3

我正在尝试使用对RESTful资源控制器的JSON响应为我的rails应用程序创建API。这对我来说是一次全新的体验,所以我正在寻找一些指导和指导。开始时:

  1. 在rails应用程序中,使用JSON响应REST-ful控制器方法的“正确”方法是什么? (创建,更新,销毁)
  2. 是否有通过JSON响应指示成功/失败的惯用方法?

  3. 其他信息:

    • 我目前正在使用rails 3.0.beta2
    • 我想避免使用插件或gem进行繁重的工作,我的目标是更好地了解如何制作rails 3 API。
    • 链接到我可以找到关于该主题的更多信息的地方也会受到赞赏,一些快速搜索谷歌并没有给我带来太多好处。

1 个答案:

答案 0 :(得分:29)

#config/routes.rb
MyApplicationsName::Application.routes.draw do
  resources :articles
end

#app/controllers/articles_controller.rb
class ArticlesController < ActionController::Base

  # so that respond_with knows which formats are
  # allowed in each of the individual actions
  respond_to :json

  def index
    @articles = Article.all
    respond_with @articles
  end

  def show
    @article = Article.find(params[:id])
    respond_with @article
  end

  ...

  def update
    @article = Article.find(params[:id])
    @article.update_attributes(params[:article])

    # respond_with will automatically check @article.valid?
    # and respond appropriately ... @article.valid? will
    # be set based on whether @article.update_attributes
    # succeeded past all the validations
    # if @article.valid? then respond_with will redirect to
    # to the show page; if !@article.valid? then respond_with
    # will show the :edit view, including @article.errors
    respond_with @article
  end

  ...

end