Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery欢迎消息,直到关闭一次为止(Rails 3)_Javascript_Jquery_Ruby On Rails_Ajax_Ruby On Rails 3 - Fatal编程技术网

Javascript jQuery欢迎消息,直到关闭一次为止(Rails 3)

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 在布局/视图中包含条件语句,以

我想向第一次使用的用户显示一条欢迎消息,直到用户“关闭”该消息一次。通过jQuery的隐藏方法


如何才能最好地做到这一点?我使用的是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/从其他地方登录时都进行注册。我认为最初的问题还不够清楚,无法回答。但它并没有明确说明注册或注册。它说给第一次使用的用户一个欢迎的信息,这不是特别清楚。不管怎么说,我只是在建议一个替代方案,一个我通常更喜欢的方案,但事实并非如此
他怎么解决这件事对我来说无关紧要。正如我所说,它几乎完全使用了我描述的内容,而且它是一个受欢迎的网站,我们可以在上面开玩笑;两者都做得很好,但我一直在寻找一个后登录解决方案。如果您的用例是上面描述的场景,那么这个解决方案更整洁。谢谢你们两位的回答。