рельсы 3 - оставайтесь на странице после отправки формы ajax, но покажите "flash" - PullRequest
2 голосов
/ 24 марта 2011

Я использую Rails 3, и у меня есть форма ajax (то есть: remote => true), которая выполняет действие «вставка» на моем контроллере.

Я хочу, чтобы пользователь оставался настраница указателя, но иметь возможность отображать флэш-сообщения, установленные действием «insert» в контроллере.

В настоящее время мое действие «insert» выполняет что-то вроде:

def insert
  begin
    # perform insert of stuff
    flash[:success] = "Successfully..."
  rescue
    flash[:error] = "failed ..."
  end
  render :nothing => true
end

Это позволяет форме(на index.html.erb) для отправки и удерживает пользователя на этой странице, но флэш-сообщения не отображаются.Как я могу получить флеш-сообщения?(угадаю, что это связано с рендером: ничего такого, но без этого я получаю ошибки «отсутствующего шаблона» в журнале сервера).

1 Ответ

4 голосов
/ 24 марта 2011

Вам понадобится Javascript респондент:

def insert
  begin
    # perform insert of stuff
    flash[:success] = "Successfully..."
  rescue
    flash[:error] = "failed ..."
  end
end


# insert.js.erb
$('#flash').html(<%= flash[:notice].to_json %>);

Использование flash для отображения сообщений об ошибках формы определенно нерегулярно.Вам лучше обновить элемент в форме сообщением об ошибке или заменить форму в целом.

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