在我的 Rails 应用程序中,我希望持续向用户显示警告通知以更新他们的个人资料,直到他们这样做。具体来说,我希望他们尽快填写他们的姓名,但我不希望他们在注册期间这样做。所以我在我的应用程序布局中加载的部分中编写了以下内容:
<% if user_signed_in? && current_user.profile.name == nil %>
<div class="alert alert-warning alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
Please fill in your Profile as soon as possible. This information is important for you to use the application properly.
<%= link_to "Do it now", edit_profile_path(current_user) %>
</div>
<% end %>
但是,我觉得这是一种非常笨拙的方法。首先,这意味着每次登录用户访问页面时,都会对其个人资料进行数据库检查。其次,它是视图中的逻辑。
所以我的问题是,什么是更“Rails 方式”来做到这一点?以某种方式将逻辑移动到应用程序控制器中?将逻辑结果加载到会话变量或其他东西中,以便不需要在每次页面加载时检查数据库?