2013-12-17 78 views
3

有没有什么办法可以找出用户每天有多少独特的登录?登录每天在设计

我们可以跟踪用户,了解用户有多少sign_in的,或者在与签署:

User.last.sign_in_count 

User.last.last_sign_in_at 

但不是他的每一天有多少时间记录下来。

回答

1

你可以做的是创建一个表格,其工作方式类似于日志,在那里你输入每个登录名,或者你可以做的是在你的登录名后面创建一个.txt文件。控制并插入.txt用户名和日期,但不好的一面是日志将在计算机上。

如果您选择使用tablein sql,acces或任何你想要的,只需要一个select解决方案。

从table_log_login中选择count(*),其中user ='user'和date ='yyyy-mm-dd';

0

我无法理解你想要什么,所以:

如果你想指望每天登录的次数,你可以过滤器,你检查日期的登录方法后,创建一个(这是假设您有一个表格,您可以跟踪具有日期的登录次数)。

如果您想知道用户登录的连续天数,您可以做同样的事情,但可以保存开始日期和结束日期,以便知道“连胜”何时结束。如果您在使用英语时遇到问题,请使用英语和其他任何能流利使用的语言,以便有人可以正确翻译。

0

好吧,对不起,我很好理解,但不写得这么好,比试试两种语言。

当你登录你的程序时,你在日志表中插入数据库,当程序关闭时,更新行,插入登录开始和更新登录结束,你可以在sqlserver中使用smalldatetime或在mysql中使用datetime ,所以,您可以选择没有问题的登录日期,时间或分钟。 ('26','5','2013-12-30 08:02')插入tb_login(cod_login,cd_user,dt_start) 记:你需要有一个接受空一列,列是“dt_end”

比你更新 更新设置dt_end =从tb_login“2013-12-30 10:10”,其中cod_login =“26”;


我的母语(葡萄牙):

OK,desculpa,entendo BEM MAS NAO escrevo igualmente BEM,entãoVAMOS tentar EM杜阿斯LINGUAS

quando VOCE洛加没有SEU programa,VOCE insere呐tabela de login e quando encerra o programa,o mesmo realiza umaatualizaçãona linha com a data de log out,vocêpode usar“smalldatetime”no SqlServer ou“DateTime”no mysql,então,épossivel selecionar sem problemas o dia,hora ou minutor dos登录。插入tb_login(cod_login,cd_user,dt_start)值('26','5','2013-12-30 08:02');插入tb_login(cod_login,cd_user,dt_start) NOTA:几句PRECISA叔UMA coluna阙aceita “空”,一个colunaé “dt_end”

então几句atualiza 更新设定dt_end =从tb_login '2013-12-30 10:10',其中cod_login = '26' ;

1

以下是我在我的Rails应用程序所做的:

我创建了一个新的模型跟踪每个访问

rails g model Visit user_id:integer user_ip:inet user_email:string 

然后

rake db:migrate 

接下来,我创建了一个控制器,跟踪会话与

app/controllers/track_sessions_controller.rb 

info about devise session controller

然后我说每个代码登录成功后运行

class TrackSessionsController < Devise::SessionsController 
    after_filter :after_login, :only => :create 

    def after_login 
    Visit.create!(user_id: current_user.id, user_ip: current_user.current_sign_in_ip, user_email: current_user.email) 
    end 
end 

然后更新您的routes.rb本节

devise_for :users 

devise_for :users, :controllers => { :sessions => "track_sessions" } 

如果你想要查看用户每天有多少次唯一登录,现在可以执行一些操作像这样:

User.all.each do |user| 
    logins_per_day(user.id) 
end 

def logins_per_day(user_id) 
    dates_visited = Visit.where(user_id: user_id).select('distinct created_at').all.collect{|x| x[:created_at].to_date} 
    puts "************* USER ID #{user_id} *************" 
    dates_visited.group_by {|date| date}.map {|date_visited, times_visited| puts "Date Visited: #{date_visited} Times Visited: #{times_visited.count}"} 
end