Rails 3: шаблон отсутствует ошибка.Как сделать флеш-сообщение только после создания - PullRequest
0 голосов
/ 08 февраля 2012

Я пытаюсь визуализировать только флэш-сообщение без перенаправления или рендеринга после действия Create:

  def create
    @subscriber = Subscriber.new(params[:subscriber])
    if @subscriber.save
      success = true
      message = "Thanks!"
    else
      success = false
      message = "Sorry, there was an error."
    end

    respond_to do |format|
      format.html {
        if success
          flash[:success] = message 
        else
          flash[:error] = message
        end  
      }  
    end
  end

С этим кодом я получаю ошибку отсутствия шаблона. Я тоже не хочу обновлять ту же страницу. Как отобразить флэш-сообщение без обновления страницы и без получения ошибки шаблона?

1 Ответ

2 голосов
/ 08 февраля 2012

Если вы не перенаправляете на какое-либо другое действие, у вас должно быть представление с именем create.html

Обычной практикой здесь является перенаправление куда-нибудь, например, root_path, или в профиль подписчика, или что-то еще

И да, чтобы показать только флэш-сообщение, вы можете использовать AJAX, тогда действие вашего контроллера будет выглядеть примерно так:

def create
  @subscriber = Subscriber.new(params[:subscriber])
  success_msg, error_msg = "Thanks!", "Sorry, there was an error."

  respond_to do |format|
    if @subscriber.save
      format.html { redirect_to root_path, :success => success_msg }
      format.js { render :js => your_javascript_to_show_the_message_here }
    else
      format.html { redirect_to root_path, :error => error_msg }
      format.js { render :js => your_javascript_to_show_the_message_here }
    end
  end 
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...