how can I generate json from respond_to method in rails?
Asked Answered
F

2

30

If I have a block of code like this:

def show
  @post = Post.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @post }
    end
  end

How do I add something like

format.json

Any tips, pointers, ideas gladly welcomed...

Fi answered 2/4, 2010 at 13:4 Comment(0)
F
69

It's just like the other formats except that you use render :json instead.

respond_to do |format|
  format.html # show.html.erb
  format.xml  { render :xml => @post }
  format.json { render :json => @post }
end
Fulton answered 2/4, 2010 at 13:18 Comment(1)
Thanks buddy - I just figured it out by reading the guide - guides.rubyonrails.org/layouts_and_rendering.html But you got me there faster!Fi
G
10

or you can handle it as javascript

respond_to do |format|
  format.js { render :json { :only => :name }.to_json }
end

then you just access your action with ".js" in the end.

Giraud answered 2/4, 2010 at 13:23 Comment(2)
@Oberon Dude, for what it's worth, I've seen format.js a lot more than I have seen format.json.Contraception
i didn't check. Normally by the default route, :controller/:action.:format any format is possible, but i don't know if all browsers are able to understand json mime-type..Giraud

© 2022 - 2024 — McMap. All rights reserved.