Возвращение JSON из рельсов с помощью response_with - PullRequest
4 голосов
/ 03 июня 2010

У меня есть вызов jquery ajax, который переходит к действию создания, и мне нужно вернуть ответ в виде JSON, чтобы затем что-то сделать с ним на странице в успешной функции ajax, но по какой-то причине с рельсами он продолжает выдавать ошибка отсутствующего шаблона:

class MembersController < ApplicationController
  respond_to :json

  def create
    @member = @group.members.build
    @member.user_id = params[:user_id]
    respond_with(@member) if @member.save
  end
end

Должен ли я вообще ничего не рендерить?

Ответы [ 2 ]

7 голосов
/ 15 декабря 2010

Я считаю, что вы должны использовать

respond_with(@member)

Удаление условного.

При этом будет использоваться «Непроцессорная сущность» для запросов json с недопустимым объектом.

4 голосов
/ 03 июня 2010

Если @member.save завершится неудачно, будет выполнен рендеринг по умолчанию, что означает, что рельсы будут пытаться рендерить create.*.erb, или create.rjs, и т. Д. Возможно, вы захотите сделать

def create
  @member = @group.members.build
  @member.user_id = params[:user_id]
  if @member.save
    respond_with(@member)
  else
    render :nothing => true
  end 
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...