HTTP POST рельсы 3 - JSON - ошибка 406 и 500 - PullRequest
0 голосов
/ 19 августа 2011

У меня проблемы с отправкой данных через HTTP REST. Когда я пытаюсь POST-данные json через расширение chrome «Простой клиент REST», я получаю внутреннюю ошибку 500 с сообщением «У документа нет действительного корня». Когда я скручиваюсь, я получаю ошибку 406. Но когда я оставляю данные как пустые в клиенте, так и в curl, создается пустой документ! Я изменил текст json на каждую возможную допустимую комбинацию и возвращаю данные, которые создает GET, но не повезло!

Код моего контроллера:

def create
@verify = Verify.new(params[:verify])

respond_to do |format|
  if @verify.save
    format.html { redirect_to( :back, :notice => 'Verified') }
    format.json { render :json => @verify, :status => :created, :location => @verify }
  else
    format.html { render :action => "new" }
    format.xml  { render :xml => @verify.errors, :status => :unprocessable_entity }
    format.json  { render :json => @verify.errors, :status => :unprocessable_entity }
  end
end

конец

Образец JSON

{"www" : "wwww"}

Я использую драгоценные камни Mongoid и Devise (пытался удалить before_filter из контроллера, но это не имело никакого значения).

1 Ответ

0 голосов
/ 19 августа 2011

Rails 3 по умолчанию добавляет в json корневой элемент json в activerecord, так как вы используете mongoid, попробуйте добавить его в mongoid.yml

include_root_in_json: true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...