Чтобы приветственное сообщение сохранялось между действиями, вам нужно что-то сохранить в базе данных, чтобы записать, закрыл ли пользователь сообщение.Это можно сделать, добавив столбец в модель пользователя:
#new_migration.rb
add_column :users, :display_welcome_message, :boolean, :default => true
Включите условный оператор в макет / представление, чтобы проверить, должно ли отображаться приветственное сообщение:
<% if current_user.display_welcome_message %>
<!-- put you welcome message here -->
<% end %>
Затем, когда пользователь нажимает кнопку «скрыть», вы можете заставить jquery вызывать действие контроллера асинхронно:
$.post('/user/<%= current_user.id %>/close_welcome')
Затем создать действие контроллера, которое постоянно скрывает сообщение
#users_controller.rb
def close_welcome
current_user.update_attributes({:display_welcome_message => false})
end
ВыМне нужно было бы создать маршрут и для этого действия:
#routes.rb
resources :users do
post 'close_welcome', :on => :member
end
Теперь, когда я это напечатал, это кажется немного скучным, возможно, кто-то может придумать что-то более изящное.Если бы у вас было много разных сообщений, ваша модель User могла бы стать очень запутанной - я бы, вероятно, запустил новую модель MessageAction для пользователя assign_to, с логическим полем для каждого типа сообщений.