неопределенный метод `flash 'для # - PullRequest
3 голосов
/ 13 января 2012

У меня есть вещи с Ruby on Rails 3

Я попробую этот простой код

  def index
    flash[:notice] = "ok"
    respond_to do |format|
      format.html # index.html.erb
    end
  end

не работает

NoMethodError in DashboardsController#index
undefined method `flash' for #<ActionDispatch::Request:0x7fee9329a9d0>

Когда я пытаюсь

redirect_to :some_in, :notice => "ok"

в другом месте (в some_controller.rb) и затем напечатайте это: уведомление в .erb У меня та же ошибка, неопределенный метод `flash '

Я застрял на этом. Я использовал Google для поиска, но это не помогает.

Ответы [ 3 ]

2 голосов
/ 30 мая 2015

В config/applications.rb вашего приложения добавьте

config.api_only = false
1 голос
/ 27 октября 2015

Пожалуйста, включите ActionDispatch :: Flash промежуточное ПО в файл config / application.rb.

config.middleware.use ActionDispatch::Flash

Это может вам помочь.

0 голосов
/ 17 января 2012

flash[:notice] появится только после redirect_to или render (хотя вам потребуется flash.now[:notice]).

Вспышка предназначена для предоставления пользователю обратной связи о состояниидействие, предпринимаемое пользователем.Простое отображение индекса, как правило, не попадает в эту категорию, поскольку оно отображает только данные, а не показывает результат действия пользователя.

Например:

def create
  @post = Post.new(params[:post])

  respond_to do |format|
    if @post.save
      format.html  { redirect_to(@post,
                    :notice => 'Post was successfully created.') }
    else
      format.html  { render :action => "new" }
    end
  end
end

В этомВ случае, если вспышка появится в представлении Post Show, только если сообщение было сохранено напрямую.

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