Rails JSON для инъекций - PullRequest
       7

Rails JSON для инъекций

6 голосов
/ 21 октября 2010

В Rails 2.3 я всегда использовал

render :json => { :success => true, :data => @foobar}

для отправки данных JSON на мой веб-интерфейс. В Rails 3 я использую

respond_to :json
...
respond_with @foobar

Но чего мне не хватает: мне нужно значение «success» в структуре JSON. Как правильно вводить такие данные в ответ JSON в Rails 3?


Хм, тоже попробовал, но в результате получаю следующую ошибку:

SyntaxError (app/controllers/properties_controller.rb:13: syntax error, unexpected tASSOC, expecting '}'
respond_with { :success => true, :data => @property }
                          ^
/app/controllers/properties_controller.rb:13: Can't assign to true
respond_with { :success => true, :data => @property }
                                ^
app/controllers/properties_controller.rb:13: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
respond_with { :success => true, :data => @property }

Ответы [ 2 ]

4 голосов
/ 21 октября 2010

Когда все не подходит по умолчанию, вам нужно вернуться к предыдущему настроенному пути.respond_with принимает блок.

respond_with @foobar do |format|
  format.json { render :json => { :success => true, :data => @foobar} }
end
1 голос
/ 21 октября 2010

Вы не можете использовать объект как значение.Вы просто добавляете ключ / значение внутрь с помощью переопределения serializable_hash method

Но вы можете сгенерировать ваш хэш в response_with

respond_with { :success => true, :data => @foobar}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...