在我的Rails应用程序中,每个用户的customer_added布尔值为false;一旦他们添加了他们的信用卡信息,这将变为真。我想要做的是在网站上显示一个警报,其中包含每个页面上显示的信用卡信息页面的链接,直到他们的customer_added布尔值变为真(即他们添加他们的信用卡信息)。我怎么能这样做?
答案 0 :(得分:0)
轻松!您向每个页面添加内容的方式是通过布局。
只需在您想要显示它的布局中添加一些内容(最有可能是app/views/layouts/application.html.erb
)
<% if current_user && !current_user.customer_added %>
<div class="alert">
<p>Looks like you haven't added your billing info yet — <%= link_to "add it now", settings_path %>.</p>
</div>
<% end %>
(假设您正在使用Devise或以其他方式设置current_user
并假设您的样式表定义了.alert
的样子。)
所以,如果你有像这样的布局
<!DOCTYPE html>
<html>
<head>
<title>Store</title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<div class="container">
<%= yield %>
</div>
</body>
</html>
您可以将其直接插入容器
<!DOCTYPE html>
<html>
<head>
<title>Store</title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<div class="container">
<% if current_user && !current_user.customer_added %>
<div class="alert">
<p>Looks like you haven't added your billing info yet — <%= link_to "add it now", settings_path %>.</p>
</div>
<% end %>
<%= yield %>
</div>
</body>
</html>