在Rails中登录时,对表执行插入操作

时间:2015-05-19 04:57:05

标签: ruby-on-rails

我想保存有关用户的信息'登录历史。

所以我想在用户登录时进行插入操作。

这意味着点击"sign in"按钮我的系统对用户进行身份验证,并将一些信息保存到数据库中。

阅读完这篇question-answer之后,它就在我脑海中。因为我是Rails的新手。

我该怎么做?以简单的方式给我一些想法(如果存在的话)。

2 个答案:

答案 0 :(得分:1)

您可以在此方法中执行插入操作并将其保留在应用程序控制器中。我希望它有所帮助。

def after_sign_in_path_for(resource)
#insert actions
end

答案 1 :(得分:0)

根据我的知识,如果你安装了宝石'设计'它应该做的伎俩。 这取决于您是希望向用户显示历史记录还是仅为自己保留历史记录。 如果只是为了您自己的方便..那么你可能想安装'devise'gem到你的gem文件并按照git hub中的说明。

如果已经安装'devise'gem在终端运行以下命令,它将打开rails控制台(shutdown ctrl + D / command + D)

$ rails c 

假设您的设计型号名称为“用户”,请在控制台

中运行
$ User.all

Bingo它将返回用户列表及其登录历史记录,ip等。

例如

irb(main):002:0> 
<User id: 4, email: "user_4@bhram.com", encrypted_password: "$2a$10$J3LtTG1Lq.4u4jdu437q.e94IdOtlzSqCxTWLZ/yA.5...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 2, current_sign_in_at: "2015-05-19 05:29:52", last_sign_in_at: "2015-05-18 18:45:54", current_sign_in_ip: "127.0.0.1", last_sign_in_ip: "127.0.0.1", created_at: "2015-05-18 18:45:54", updated_at: "2015-05-19 05:29:52">

如果你挖一点,你可以看到 sign_in_count:2, current_sign_in_at:“2015-05-19 05:29:52”, last_sign_in_at:“2015-05-18 18:45:54” ..

您希望您可以创建一个新表来跟踪历史记录并更好地查看

或者,如果您想将其显示给银行网站等用户

假设你有另一个链接的脚手架模型'xyz'所以在show view中你可以编辑这个

<%= @xyz.user.sign_in_count %>

同样你也可以使用其他命令