开发者

Getting JSON back from rails with respond_with

开发者 https://www.devze.com 2023-01-02 17:25 出处:网络
I have a jquery ajax call that goes to the create action, and I need to get the response back as JSON to then do something with it on the page in the success ajax function, but for some reason with ra

I have a jquery ajax call that goes to the create action, and I need to get the response back as JSON to then do something with it on the page in the success ajax function, but for some reason with rails it keeps throwing a missing template error:

class MembersController < ApplicationController
  respond_to :json

  def create
    @member = @group.members.build
    @member.user_id = params[:user_id]
    respond_with(@member) i开发者_JAVA技巧f @member.save
  end
end

Should I be rendering nothing at all?


I believe you should be using

respond_with(@member)

Removing the conditional.

This will use an "Unprocessable Entity" for json requests with an invalid object.


If @member.save fails, then the default rendering will take place, which means that rails will try to render create.*.erb, or create.rjs, etc. You probably want to do

def create
  @member = @group.members.build
  @member.user_id = params[:user_id]
  if @member.save
    respond_with(@member)
  else
    render :nothing => true
  end 
end
0

精彩评论

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