Javascript jQuery欢迎消息,直到关闭一次为止(Rails 3)
我想向第一次使用的用户显示一条欢迎消息,直到用户“关闭”该消息一次。通过jQuery的隐藏方法Javascript jQuery欢迎消息,直到关闭一次为止(Rails 3),javascript,jquery,ruby-on-rails,ajax,ruby-on-rails-3,Javascript,Jquery,Ruby On Rails,Ajax,Ruby On Rails 3,我想向第一次使用的用户显示一条欢迎消息,直到用户“关闭”该消息一次。通过jQuery的隐藏方法 如何才能最好地做到这一点?我使用的是Rails 3。为了让欢迎消息在操作之间保持不变,您需要在数据库中保存一些内容,以记录用户是否关闭了消息。您可以通过向用户模型中添加列来完成此操作: #new_migration.rb add_column :users, :display_welcome_message, :boolean, :default => true 在布局/视图中包含条件语句,以
如何才能最好地做到这一点?我使用的是Rails 3。为了让欢迎消息在操作之间保持不变,您需要在数据库中保存一些内容,以记录用户是否关闭了消息。您可以通过向用户模型中添加列来完成此操作:
#new_migration.rb
add_column :users, :display_welcome_message, :boolean, :default => true
在布局/视图中包含条件语句,以检查是否应显示欢迎消息:
<% if current_user.display_welcome_message %>
<!-- put you welcome message here -->
<% end %>
您还需要为此操作创建路由:
#routes.rb
resources :users do
post 'close_welcome', :on => :member
end
现在我已经把它打出来了,它似乎有点冗长,也许有人能想出更整洁的东西。如果您将有许多不同的消息,您的用户模型可能会变得非常混乱-我可能会启动一个新的MessageAction模型,该模型属于用户,每个消息类型都有一个布尔字段。为了让欢迎消息在操作之间保持不变,您需要在数据库中保存一些内容,以记录用户是否已关闭消息。您可以通过向用户模型中添加列来完成此操作:
#new_migration.rb
add_column :users, :display_welcome_message, :boolean, :default => true
在布局/视图中包含条件语句,以检查是否应显示欢迎消息:
<% if current_user.display_welcome_message %>
<!-- put you welcome message here -->
<% end %>
您还需要为此操作创建路由:
#routes.rb
resources :users do
post 'close_welcome', :on => :member
end
现在我已经把它打出来了,它似乎有点冗长,也许有人能想出更整洁的东西。如果您有许多不同的消息,您的用户模型可能会变得非常混乱-我可能会启动一个新的MessageAction模型,该模型属于用户,每个消息类型都有一个布尔字段。根据您站点的详细信息,我建议只使用cookie检查用户是否单击了关闭按钮。粗略地说,是这样的:
if ( ! $.cookie("has_seen_message") ) {
// show the welcome message
$("#welcome-message .close_button").click(function() {
$("#welcome-message").hide();
$.cookie("has_seen_message", 1);
});
}
那么你根本不需要在轨道上做任何事情。建模/持久化UI行为没有意义,除非它真的很重要。根据站点的详细信息,我建议使用cookie检查用户是否单击了关闭按钮。粗略地说,是这样的:
if ( ! $.cookie("has_seen_message") ) {
// show the welcome message
$("#welcome-message .close_button").click(function() {
$("#welcome-message").hide();
$.cookie("has_seen_message", 1);
});
}
那么你根本不需要在轨道上做任何事情。建模/持久化UI行为毫无意义,除非它真的很重要。这是一个更简洁的解决方案,但这意味着如果用户删除Cookie/登录另一台计算机/使用另一个浏览器,他们将再次看到欢迎消息。是的,这确实意味着。使用此解决方案意味着您肯定可以接受。很多网站都同意,比如stackoverflow。这真的取决于网站。也许我对这个问题的理解不同;我读到@neon在用户注册后想要一条欢迎信息,并一直持续到被解雇,而不是在未注册用户第一次到达网站时的欢迎信息。如果我正确理解了这个问题,我认为我的解决方案会更好——如果用户受到“新用户”网站的欢迎,这将是一个糟糕的用户体验,感谢他们每次清除Cookie/从其他地方登录时都进行注册。我认为最初的问题还不够清楚,无法回答。但它并没有明确说明注册或注册。它说给第一次使用的用户一个欢迎的信息,这不是特别清楚。不管怎样,我只是建议一个替代方案,一个我通常更喜欢的方案,但他如何解决这个问题对我来说并不重要。正如我所说,它几乎完全使用了我描述的内容,而且它是一个受欢迎的网站,我们可以在上面开玩笑;两者都做得很好,但我一直在寻找一个后登录解决方案。如果您的用例是上面描述的场景,那么这个解决方案更整洁。这是一个更简洁的解决方案,但这意味着如果用户删除cookie/登录到另一台计算机/使用另一个浏览器,他们将再次看到欢迎消息。是的,这确实意味着。使用此解决方案意味着您肯定可以接受。很多网站都同意,比如stackoverflow。这真的取决于网站。也许我对这个问题的理解不同;我读到@neon在用户注册后想要一条欢迎信息,并一直持续到被解雇,而不是在未注册用户第一次到达网站时的欢迎信息。如果我正确理解了这个问题,我认为我的解决方案会更好——如果用户受到“新用户”网站的欢迎,这将是一个糟糕的用户体验,感谢他们每次清除Cookie/从其他地方登录时都进行注册。我认为最初的问题还不够清楚,无法回答。但它并没有明确说明注册或注册。它说给第一次使用的用户一个欢迎的信息,这不是特别清楚。不管怎么说,我只是在建议一个替代方案,一个我通常更喜欢的方案,但事实并非如此
他怎么解决这件事对我来说无关紧要。正如我所说,它几乎完全使用了我描述的内容,而且它是一个受欢迎的网站,我们可以在上面开玩笑;两者都做得很好,但我一直在寻找一个后登录解决方案。如果您的用例是上面描述的场景,那么这个解决方案更整洁。谢谢你们两位的回答。