October, 2008的存档

restful_authentication with state machine

一直使用 restful_authentication 作用户认证,最近它加上的状态机功能(用了 acts_as_state_machine),装上以后遇到灵异事件,系统发出的激活邮件里面的激活码和数据库里面存的不一样。我并不了解 acts_as_state_machine 的具体机制,只是觉得下面一行可能运行了两遍:

state :pending, :enter => :make_activation_code

Google 了一下,在作者的 README 里找到答案:

Pay attention, may be this is not an issue for everybody, but if you should have problems, that the sent activation_code does match with that in the database stored, reload your user object before sending its data through email something like:

 

 

class UserObserver < ActiveRecord::Observer
      def after_create(user)
        user.reload
        UserMailer.deliver_signup_notification(user)
      end
      def after_save(user)
        user.reload
        UserMailer.deliver_activation(user) if user.recently_activated?
      end
end

发表评论

Ruby ecosystem in China

今天参加 QClub 听财帮子的 RobinLu 和 FreeWheel 的董斌分享 Rails 的一些开发经验,去的有很多熟脸。

回想 Rails 从传入国内三年多的时间,感觉一直是只叫好不叫座,这其中有几个问题可能是影响大家上手的关键:

第一就是基础设施,Rails 是 Linux 上弄出来的东西,在 Windows 上的表现一直不算太好,兼容性、性能都有问题,而国内在 Linux 上的 web developer 还比较少。而美国呢?在 Linux 上开发司空见惯,用 mac 的也有大把。

还有就是服务器,三年来国内一直没有靠谱的 shared host,VPS 更别说了。创业的兄弟,搞搞这个业务,绝对的市场空白阿。而美国呢?Slice Host, Engine Yard, EC2, 还有我用的 AVLUX, 价格便宜量又足(对他们的消费水平来说)。

再有三年来,Rails 从 1.0 升级到现在的 2.1,很多功能上的完善,同时也有很多 method 都变了,版本间不兼容,你的网站就需要跟着 Rails 的升级不断升级,这个问题,问题是你用的 plugin 随着 Rails 升级也会出现不兼容,这些问题不会有人主动告诉你,需要去 Google 上慢慢找,对于新手入门来说可能会很不爽。如果可以整理一套针对 Web 开发常见组件和需求的解决方案,对大家 Rails 入门应该是非常有帮助的,这也是和 Rails 社区的另外几位朋友一起合著《Web 开发大全 - Ruby on Rails 版》的意义所在,但是 Rails 社区前进的速度靠出书是不够的,或许 wiki 更好些。

9 条评论

最近主题:

最近评论

  • erick: 搞定了, 从win上转过来的,比较呆, ...
  • erick: 装成功能 了,想用gui工具访问mysql,请...
  • Gary: Did you write this skin for Maxthon? If so, can I...
  • andy: what's iter...
  • g.zhen.ning: 有道理,有点喜欢ruby,不过不知道前...