Rails Json POST создает значение для атрибутов, имеющих нулевое значение, даже если сервер регистрирует значение - PullRequest
0 голосов
/ 13 января 2012

У меня есть проект iOS, который отправляет на сервер класс Person с одним атрибутом name , который является «данными».Сервер видит его, но устанавливает его на null .

Processing PeopleController#create (for 127.0.0.1 at 2012-01-13 03:55:46) [POST]
  Parameters: {"name"=>"data"}

Person Create (0.4ms)   INSERT INTO "people" ("created_at", "updated_at", "name")
VALUES('2012-01-13 11:55:46', '2012-01-13 11:55:46', NULL)
Completed in 27ms (View: 1, DB: 0) | 200 OK

Это приложение Rails, сгенерированное скаффолдами, с Person has_many dogs и собак принадлежит_ к персонажу .
Ниже приведен метод создания сгенерированного скаффолда:

def create
  @person = Person.new(params[:person])
  respond_to do |format|
    if @person.save
      flash[:notice] = 'Person was successfully created.'
      format.html { redirect_to(@person) }
      format.xml  { render :xml => @person }
      format.json { render :json => @person }
    else
      format.html { render :action => "new" }
      format.xml  { render :xml => @person.errors, :status => :unprocessable_entity }
      format.json { render :json => @person.errors, :status => :unprocessable_entity }
    end
  end
end

Что я делаю не так?Нужно ли мне писать собственный анализатор JSON?
Я использую Rails версии 2.3.4 с Ruby 1.8.7.

1 Ответ

4 голосов
/ 13 января 2012

Вы строите свою модель, используя params[:person]. Или вы можете видеть, что полученные параметры {"name"=>"data"}, когда они должны быть {"person" => {"name"=>"data"}}

...