开发者

Rails 3: What is the proper way to respond to REST-ful actions with JSON in rails?

开发者 https://www.devze.com 2022-12-25 19:39 出处:网络
I\'m trying to make an API for my rails application using JSON responses to RESTful resource controllers. This is a new experience for me, so I\'m looking for some guidance and pointers. To start thin

I'm trying to make an API for my rails application using JSON responses to RESTful resource controllers. This is a new experience for me, so I'm looking for some guidance and pointers. To start things off:

  1. In a rails application, what is the "proper" way to respond with JSON to REST-ful controller methods? (create, update, destroy)
  2. Is there an idiomatic way to indicate success/failure through a JSON response?

Additional information:

  • I'm currently working with rails 3.0.beta2
  • I would like to avoid using a plugin or gem to do the gr开发者_JAVA百科unt work, my goal is to gain a better understanding of how to make a rails 3 API.
  • Links to places I could find more information on the topic would also be appreciated, some quick searching on google didn't do me much good.


#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
0

精彩评论

暂无评论...
验证码 换一张
取 消