-
0 个赞 • 12 条回复
-
0 个赞 • 26 条回复
-
[远程] 招聘 Rails 攻城狮 - 自由枪骑兵 at 2018年12月28日
弱弱的问下,为什么瞧不起深圳…
-
Ruby 没有提供 ++ -- 操作符感觉会大大影响书写性 at 2018年10月15日
酱紫如何:
break if str[v] != 3; v += 1
-
有没有比 Ruby 更优雅更好用的语言 at 2018年10月11日
有呀,Chinese了解一下
-
感觉 Ruby China 社区越来越冷清了。。。 at 2018年09月20日
老铁 淡定 在哪个城市 一起来交流技术
-
CSV 文件如何做一个类似合并单元格的操作 at 2018年09月13日
CSV应该有个header的,可以利用
inject
,像这样:data = [ {h1: 'A', h2: '123'}, {h1: 'A', h2: '1223'}, {h1: 'A', h2: '12343'}, {h1: 'A', h2: '123XX33'}, {h1: 'B', h2: '678'}, {h1: 'B', h2: '612378'}, {h1: 'B', h2: '67XX8'}, {h1: 'C', h2: '100'}, {h1: 'C', h2: '1000'} ] data.inject({}) { |r, e| r[e[:h1]] = Array(r[e[:h1]]) << e[:h2]; r } #=> {"A"=>["123", "1223", "12343", "123XX33"], "B"=>["678", "612378", "67XX8"], "C"=>["100", "1000"]} # or data.map{|x| Hash[*x.values]}.inject(&lambda{|x,y| x.merge(y){ |_, o, n| [o, n].flatten }}) #=> {"A"=>["123", "1223", "12343", "123XX33"], "B"=>["678", "612378", "67XX8"], "C"=>["100", "1000"]}
-
系统使用 Devise 做的登录,有个需求 [同一帐号被另一台机器登录,本机器被强制退出登录],求大神指点一下 at 2018年09月04日
嗯,所以一开始我就是建议你做uuid来判断唯一设备,不过我想了想uuid放session不太妥。你可以这样操作:
- 第一次登录生成uuid,存储到user的device_uuid字段,并记录到cookies中
- 用户每次请求判断cookies带的uuid是否与用户表记录的device_uuid一致,不一致就登出
- 新设备登录时,更新用户表中的device_uuid
-
系统使用 Devise 做的登录,有个需求 [同一帐号被另一台机器登录,本机器被强制退出登录],求大神指点一下 at 2018年09月04日
我的意思是,你可以在验证用户后面写你自己的逻辑,比如判断当前用户的session_id是否与你DB中保存的一样,不一样就sign_out(user),至于登出的redirect,你可以覆盖
after_sign_out_path_for
这个方法来指定登出跳转,但如果你要做到实时性,就是一但新设备登录,老设备就自动登出,那你可能要借助长轮询(Long Polling)或WebSocket来实现。 -
系统使用 Devise 做的登录,有个需求 [同一帐号被另一台机器登录,本机器被强制退出登录],求大神指点一下 at 2018年09月04日
不一定要从源码入手,尝试这样是否可行:
before_action authenticate_user! def authenticate_user! super # your code end
-
系统使用 Devise 做的登录,有个需求 [同一帐号被另一台机器登录,本机器被强制退出登录],求大神指点一下 at 2018年09月04日
我没有做过类似的功能,但我觉得可以这样实现:
- session存储于Redis
- 第一次登录为当前设备生成唯一码uuid,存放在cookies及session中
- 每次请求判断cookies中的uuid及session中的uuid一致与否,若不一致自动登出
- 新(设备)登录重置session中的uuid
以上仅仅提供一个思路,不一定是最好的解决方案,仅供参考
-
我为什么今年举办这次 Ruby Summit China 2018 大会? at 2018年08月29日
很好,我当初差点因为作者是个日本人而放弃学Ruby,不过因为DHH是丹麦人,我又才入了Rails的坑
Node.js小白白。