Если вы вернете javascript (.js.erb) с сервера Rails ИЛИ воспользуетесь собственным механизмом обратного вызова JS при обновлении страницы после вызова Ajax - PullRequest
2 голосов
/ 18 октября 2011

Я делаю ajax-вызов (используя JQuery), и контроллер Rails должен вернуть частичное, чтобы я мог обновить страницу после ajax-вызова. Мне кажется, есть 2 способа сделать это. В контроллере вы фильтруете вызовы ajax (request.xhr?) И возвращаете:

  1. .js.erb, который выполняется на стороне клиента как часть самого вызова Ajax (dataType: script). Этот файл .js.erb управляет DOM и внедряет html частичек, что-то вроде этого:

    $ ('# content'). Html ("<% = escape_JavaScript (render: частичный => 'success')%>");

  2. частичное ((dataType: html). У вас есть успешный метод обратного вызова при вызове ajax, который затем выполняет инъекцию, примерно так:

    $. Post (url, send_data, функция (данные) { $ ("#result") .empty (). append (data); }

Оба эти решения работают отлично, я просто не знаю, какое из них считается лучшей практикой кодирования и проще в обслуживании.

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Второй вариант идеален.Сервер никогда не должен касаться Клиента.

0 голосов
/ 19 октября 2011

Я бы сказал и второй вариант, потому что он имеет смысл при разговоре с точки зрения RESTful.

Я говорю об этом в записи в блоге "Rails, REST и JS - мы делаем это неправильно"

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