Я новичок в Rails, поэтому это действительно базовый, и я уверен, что мне не хватает чего-то простого. Я пытаюсь отправить JSON на действие и получить его, чтобы вернуть ответ в JSON. Ниже приводится упрощенная версия того, что я пытаюсь сделать.Почему Ruby на рельсах возвращает null вместо объекта json
JQuery Я использую:
var request = { 'voter': { 'voter_name': 'John', 'voter_email': '[email protected]'} };
var url = 'http://someip/Voters/create';
$.ajax({
type: 'POST',
url: url,
data: request,
success: function (data) { alert(data); },
error: function (data) { alert(data); },
dataType: 'json'
});
Мои действия:
def create
@voter = Voter.new(params[:voter])
logger.info(@voter.to_json)
render :json => @voter
end
Похоже, это должно возвращаться просто отлично, особенно учитывая консоль показывает объект избирателя просто отлично:
Processing VotersController#create (for someip at 2010-08-17 21:19:51) [POST]
Parameters: {"voter"=>{"voter_name"=>"John", "voter_email"=>"[email protected]"}}
{"voter":{"created_at":null,"updated_at":null,"voter_email":"[email protected]","voter_name":"John"}}
Completed in 11ms (View: 1, DB: 0) | 200 OK [http://someip/Voters/create]
Проблема в том, что мои оповещения (или каким-либо другим способом я пытаюсь посмотреть на это да ta) все показывают мне null. Объект не возвращается. Любые указатели будут очень благодарны.
Что вы видите, если ударили это действие с помощью 'curl'? Является ли ответ пустым? – cam
Я застрял в окне окна в данный момент, так что это очень хороший вопрос. Если я получаю доступ к этому действию непосредственно в своем браузере с помощью GET, я вижу: {"voter": {"created_at": null, "updated_at": null, "voter_email": null, "voter_name": null}} – Jared
Является ли URL, который вы отправляете в другой домен со страницы, занимающейся публикацией? –