В вашем layouts/application.html.erb
должно быть что-то вроде этого:
<% flash.each do |key, value| %>
<%= content_tag(:div, value, class: "flash #{key}") %>
<% end %>
Поступая таким образом, должен работать так, как вы ожидаете.
EDIT
Что если вы проверите, что current_user
уже установлено?
def home
if current_user && current_user.sign_in_count == 1
flash.now[:notice] = "Welcome!"
end
end
РЕДАКТИРОВАТЬ 2
OK! Понял! Столбец sign_in_count
с Devise
будет оставаться неизменным до следующего входа в систему, поэтому он всегда будет отображать сообщение Welcome!
. Чтобы сделать это так, как вы ожидаете, вы должны создать на нем флаг.
def home
if current_user && current_user.sign_in_count == 1
unless session[:display_welcome]
flash.now[:notice] = "Welcome!"
session[:display_welcome] = true
end
end
end
Вы можете попробовать использовать session
или cookies
.