• 怎么没有继续了,github 上也是 四个月前

  • mongoid-tree mongoid (~> 3.0)

    mongoid_tree I’m about to upgade mongoid_tree to support Mongoid 2.0.0.rc.1.

  • mark, up, 顶,收藏,赞

  • @yedingding ruby-china 的时间在 hover 的时候也可以看,我才知道,不过这样已经很好了。

  • @poshboytl @yedingding @huacnlee 我喜欢加收藏了

    我有个小建议,这个功能虽然漂亮,但用户不一定都买帐。

    我本人作为一个程序员,有时候也很难体会用户细腻的小心思,心想这么贴心的功能我都实现了,多帅!

    有人却说,我就想知道那个人什么时候回的帖子,如果半夜二点还不睡觉,明天我就关心关心他,结果一看是 8 个小时前,或一天前,这些信息要么我还要算一下,要么对我根本没有用。

    我想想也有道理,能不能把时间做成一个锚点链接,默认是几分钟前,几天前,但如果点击一下可以显示年月日,时分秒,这样可能更帅!

  • 赞!

  • 网上找了一下, def email=(val) 应该就是 setter 的作用,也就是说用户注册给 email 赋值的时候,这个函数会提前把email_md5先赋值了。

    我奇怪的是,为什么email_md5是空的,这个字段文件开头也是定义过了的。

  • 谢谢 @huacnlee 回复,我是把所有用户都删除了再注册新用户来试的,看 4 楼的链接,很明显是那个 md5 出了问题,我如果直接把生成 md5 的代码放在 users_helper.rb 里面,头像就能正常显示。

    请问这个函数是不是用户一登录就会调用啊?

    def email=(val)
    。。。
    end
    
  • def email=(val)
      self.email_md5 = Digest::MD5.hexdigest(val || "")
      self[:email] = val
    end
    

    最后找到问题,似乎是 email_md5 没有值,上面那个函数在 app/models/user.rb 里面,我现在对这种跟 C++ 很大出入的函数还是有点头大,不知道 @huacnlee 能不能讲解一下,谢谢。

  • @huacnlee 昨天按你的教程把代码版本跟上来了,但是个人资料页(http://localhost:3000/account/edit)的头像不能正常显示了,我看了一下图像的链接是: http://gravatar.com/avatar/.png?s=120&d=404

    请问这个问题我要怎么改正?谢谢

  • 新发现的 ruby-china 的 bug at 2012年07月23日

    还是人肉测试厉害,这个 bug 估计 Rspec 写不出来

  • @fsword 能把 ppt 发上来吗,我一直都是人肉测试的

  • 习惯习惯就好了,虽然现在没看多少 devise 的代码,但能用能改了。

    目前在改 ruby-china 的代码,为了防注册机,加入社交元素,现已禁用注册,只允许用户通过 Omniauth( Google, Fackbook, weibo,douban, QQ) 注册。

    用户在 callback 的时候填写在本站的用户名和密码,如果像 weibo 那样的没有返回 email,还要让用户填写 email, 同时用 devise 发 comfirmation 的 email, 改动有点大,不过埋头看代码,过一段时间还是可以搞定的。

  • 我 php 下一直用这个,flash 的,效果相当好, http://teethgrinder.co.uk/open-flash-chart-2/

    回复了才看到原来不是要这个,那就给需要的人吧

  • @huacnlee 不仅是勤劳的小蜜蜂,还是大好人啊,这么快就回复了,我一定紧紧跟着,谢谢

  • @hxgdzyuyi 看了了下 vargrant,好像用的 ubuntu10.04,还是 32 位的,

    我自己也是在服务器 (16G 内存) 上放 virtualbox 虚拟机,用的是 12.04 的最新版,反正硬盘大,如果工作做得差不多了,把虚拟机停了,clone 一份,正式运行的时候生成一个/var 和/home 硬盘文件,这样保证和系统分开,出了问题直接把这两个硬盘文件挂在原来备份的系统盘上,马上搞定。

    我觉得虚拟机的方式比较简单靠谱,当然不好的地方就是服务器要过硬。

  • 用 Facebook 登录的问题 at 2012年07月19日

    这些天基本上自己摸索得差不多了,用户登录这一块,在我看来是个重头戏,考虑的问题会很多,就现在 ruby-china 的代码来看,会有很多问题。

    比如一个普通注册的用户哪天用 github 登录一下,结果就会生成了一个新用户,两个用户名还不能合并,如果是从新浪登录的,连 email 也没有,还要伪造一个 email,这个悲剧的用户还不能改 login 的名字,因为密码还是随机的,他没有这个密码也就改不了密码,所以他下次也只能从新浪登录。。。

  • @huacnlee @Rei 4 楼"九寨沟"的问题应该怎么改,指点一下,担心涉及很多文件,改了留下后患,谢谢

  • @Rei 我现在没看代码,难道改掉就可以了,这个 action 没有地方用吗?

  • @yzhrain 的经验:

    命名时请留意 Rails 下的关键字 http://yangzhihuan.iteye.com/blog/577657

  • @Rei 错误就是app/controller/users_controller.rb中有个def location, 但 rails 中会用到location这个字段,这样当 rails 给self.location赋值的时候,就会出错。

    另外的 bug 就是在这个页面 http://ruby-china.org/account/edit 请在城市那输入 "九寨沟",你看一下是不是到 404 去了?

  • 谢谢 @huacnlee 回复,关于在 /account/edit中填的城市如果不在location表中,就会定位到 404 这个官方都存在的 bug 如何修复呢? app/controller/users_controller.rb

    if @location.blank?
          render_404
          return
    end
    

    location 表中原来存在的城市应该也是大家填的吧,这个 bug 是不是最近才出现的, 原来计划应该是检测 location 表中有没有用户输入的城市, 有的话直接在 users 表中加入 location_id, 没有的话在 location 表加入城市名称,然后把该城市的 location_id 加入用户信息中。

  • @Rei 只要在 users 表加个字段就可以了,比如说 provider, 初始值为 0

    用户用第三方接入后,如果 provider 为 0,那就把 /account/edit 的修改密码的表单放在最上面,把“原密码”换成“用户名”,强制用户修改用户名,设置密码,修改完,provider 置为 1, 如果修改之前用户去其它的地方,redirect_to“/account/edit”

    修改完之后,检测到 provider 为 1,就把 /account/edit 的修改密码的表单复原,这样用户可以修改密码,用户名就不让修改了。

    有了密码,就可以允许用户修改 email 了。

  • @huacnlee @daqing 我发现问题了,如果输入真实地址,比如说“杭州”,“长沙”就不会有问题,任意英文也没有问题,但任意中文或城市,哪怕是“九寨沟”都有问题,难道输入数据库之前做了什么处理吗?

    对不在列表的城市处理有 bug?

  • @Rei 我早就关注你的网站了,好像一直没有仔细研究过,第一印象功能上可能没有 ruby-china 丰富。

    我再仔细看看,谢谢。

  • @lgn21st 谢谢回复,我觉得现在用 login 字段做登录也挺好的,

    只要在 account/edit 页面中,把 Email 字段放到修改密码一起就好了,如果新密码和密码确认为空,旧密码和 email 有内容,就可以修改 email.

    因为如果从新浪 Weibo 登录,新浪又不提供 email,所以 email 字段是程序生成的 #{provider}+#{uid}@exsample.com , 如果不让用户修改,网站都没办法给用户发 email 了。

    另外帐号删除之前也要提供一下密码吧,我刚才用一个新帐号试了一下,随便就 byebye 了,如果我的网站有用户很多记录,这不带来很大的问题吗?

  • @daqing 我刚才又在另一台机器试了一下,同样的问题,输出结果就是:

    We're sorry, but something went wrong. We've been notified about this issue and we'll take a look at it shortly.

  • @hhuai 我可不是标题党,如果一个用户可以随便修改 email 这种事不是大事,那另一个问题就更大了,好点一下右下角的“不喜欢?删除此帐号”,好像也不要密码,这下好了,我在公共机器上连别人的帐号都可以删除了。 C @lgn21st @huacnlee

  • 哈,那个 ASCII-8BIT and UTF-8 的 Bug 我一个晚上也没搞定,刚才试了一下,原来官网也这样,

    大家可以在这个页面 http://ruby-china.org/account/edit 的城市那随便输入几个中文,看看是不是提交就出错。

  • omniauth 一个 ruby 小问题 at 2012年07月09日

    想起感叹号的作用了,基础没打牢,谢谢大家