Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Rails 3 - JSON of nested models not returning as expected
- > [{"content":"My first
- > post","created_at":"2012-02-07T18:56:16Z","id":1,"title":"Hello","updated_at":"2012-02-07T18:56:16Z"},{"content":"More
- > crap","created_at":"2012-02-07T21:30:51Z","id":2,"title":"My 2nd
- > Post","updated_at":"2012-02-07T21:30:51Z"}]
- > {"content":"that's
- > nice","created_at":"2012-02-07T20:57:16Z","id":4,"post_id":1,"title":"cool","updated_at":"2012-02-07T20:57:16Z"}
- class CommentsController < ApplicationController
- before_filter :get_post
- respond_to :html, :xml, :json
- def index
- @comments = @post.comments.all
- respond_with (@comment)
- end
- def show
- @comment = @post.comments.find(params[:id])
- respond_with(@comment)
- end
- def new
- @comment = @post.comments.build
- respond_with(@comment)
- end
- def edit
- @comment = @post.comments.find(params[:id])
- end
- def create
- @comment = @post.comments.build(params[:comment])
- respond_to do |format|
- if @comment.save
- format.html { redirect_to([@post, @comment], :notice => 'Comment was successfully created.') }
- format.xml { render :xml => @comment, :status => :created, :location => @comment }
- format.json { render :json => @comment, :status => :created, :location => @comment }
- else
- format.html { render :action => "new" }
- format.xml { render :xml => @comment.errors, :status => :unprocessable_entity }
- format.json { render :json => @comment.errors, :status => :unprocessable_entity }
- end
- end
- end
- def update
- @comment = @post.comments.find(params[:id])
- respond_to do |format|
- if @comment.update_attributes(params[:comment])
- format.html { redirect_to(@comment, :notice => 'Comment was successfully updated.') }
- format.xml { head :ok }
- format.json { head :ok }
- else
- format.html { render :action => "edit" }
- format.xml { render :xml => @comment.errors, :status => :unprocessable_entity }
- format.json { render :json => @comment.errors, :status => :unprocessable_entity }
- end
- end
- end
- def destroy
- @comment = @post.comments.find(params[:id])
- @comment.destroy
- respond_to do |format|
- format.html { redirect_to(post_comments_url) }
- format.xml { head :ok }
- format.json { head :ok }
- end
- end
- protected
- def get_post
- @post = Post.find_by_id(params[:post_id])
- redirect_to root_path unless @post
- end
- end
- def index
- @comments = @post.comments.all
- respond_with (@comment)
- end
Add Comment
Please, Sign In to add comment