Rails и jQuery - как вы получаете ошибки проверки на стороне сервера для вашего представления после ajax-запроса - PullRequest
2 голосов
/ 16 марта 2010

Я искал этот сайт, но вопросы обычно касаются выполнения проверок на стороне клиента или для других структур.

У меня есть список задач, элементы которого можно редактировать встроенными. После отправки встроенной формы редактирования элемент обновляется благодаря jQuery, ajax и rails.

Но я хочу обработать неверный ввод от пользователя. HTML-запросы снова отображают вид, и ошибки отображаются благодаря помощникам rails.

Но как мне вставить эту информацию после вызова ajax?

Вот мой метод обновления в моем контроллере

def update
    @task = Task.find(params[:id])

    respond_to do |format|
      if @task.update_attributes(params[:task])
        flash[:notice] = 'Task was successfully updated.'
        format.html { redirect_to(@task) }
        format.xml  { head :ok }
        format.js
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @task.errors, :status => :unprocessable_entity }
        #format.js ...hmmm... either go to js.erb file or do stuff inline
      end
    end
  end

1 Ответ

2 голосов
/ 16 марта 2010

Ну, вы можете сделать

format.js { render :update { |page| page.replace_html "inline_form", :partial => "form" }

где inline_form - это идентификатор элемента, внутри которого находится ваш встроенный редактор. Частичное form может содержать оператор error_messages_for и фактическое поле, которое вы показываете.

Таким образом, если проверка не пройдена, элемент с вашим редактором будет обновлен тем же редактором, но с ошибками проверки.

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