Ruby China
  • 社区
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • 注册
  • 登录
Roy
@poiyzy
高级会员
第 572 位会员 / 2011-12-25

[email protected]
Taiyuan
7 篇帖子 / 39 条回帖
4 关注者
0 正在关注
108 收藏
GitHub Public Repos
  • antd-gr 2

  • algeboard-config 0

    ALGEBOARD 键盘的固件配置模板

  • dotmatrix 0

    Hashrocket Dot Files

  • parity 0

    Fast, light, robust Ethereum implementation

  • poiyzy.github.io 0

  • ex_exponential_smoothing 0

    Elixir Exponential Smoothing Implementation.

  • ruby-ethereum 0

    A Ruby implementation of Ethereum.

  • javascript 0

    JavaScript Style Guide

  • parity-bitcoin 0

    The Parity Bitcoin client

  • strategies 0

    quantitative trading with Javascript OR Python 用Javascript OR Python进行量化交易

More on GitHub
  • 概况
  • 话题
  • 回帖
  • 收藏
  • 正在关注
  • 关注者
  • [北京][持续招聘呀.....] (玎少说,只要你敢来,我们就敢留) 来自新一代数据分析产品 GrowingIO 对 Ruby 工程师的邀请 (20K - 40K) at 2016年03月30日

    #1 楼 @lgn21st 哇,“玎少”这个 title 都传播出去了 :D

  • 新的起点,加入远程创业团队 Pragmatic.ly at 2013年10月18日

    #11 楼 @nightire 嗯嗯,我再去写一篇!谢谢,@knwang 老师!我们上课的时候,中国同学都亲切的叫他 Kevin 哥。

  • 新的起点,加入远程创业团队 Pragmatic.ly at 2013年10月18日

    #7 楼 @kennyzhu 老乡啊!有机会可以出来一起聊聊啊!在家基本遇不到搞 Ruby 的程序员。。。

  • 新的起点,加入远程创业团队 Pragmatic.ly at 2013年10月18日

    #14 楼 @ginchenorlee Terry 很健谈的,尤其是谈一些技术和项目上的东西,突然间两眼放光的!

  • 新的起点,加入远程创业团队 Pragmatic.ly at 2013年10月18日

    #4 楼 @hlt http://pragmatic.ly 这个项目。对远程管理项目非常有效。

  • 我报了 Kevin 老师的课,11 月 的,有一起学习的吗? at 2013年10月15日

    #23 楼 @AlphaLiu 还有的,把地址发到我邮箱就好 roy[AT]gotealeaf.com

  • 我报了 Kevin 老师的课,11 月 的,有一起学习的吗? at 2013年10月12日

    #19 楼 @springwq 没问题,邮箱 roy[AT]gotealeaf.com,发一下你的地址给我。目前有三种号码,S, M, L。老美的号。。。需要斟酌,不过也没有大的特别夸张。

  • 我报了 Kevin 老师的课,11 月 的,有一起学习的吗? at 2013年10月12日

    对了今年有 Tealeaf Academy 的同学去参加 RubyConfChina 么?我给大家带一些 Tealeaf Academy 印制的正版 T-shirt,免费哦!

  • [Blog] 分享一下执行'村上春树'作息方法的心得 at 2013年10月10日

    第一次听 @beenhero 说到这个作息时间后,我也尝试了将近一个月。

    嘿,这一个月体验下来,白天精神饱满了,工作效率提高了,身体抵抗力变强了,就连打 Dota 都能一口气超神了!

  • [杭州] 9-21 周六 - Ruby 活动召集 [请注意新地址] at 2013年09月20日

    初到杭州,报名 +1

  • 我的成长 (新手) at 2013年06月16日

    #13 楼 @jjha 感觉脱胎换骨啊!!!非常推荐!

    这里有一个 Tealeaf 学员对课程的经验分享(我的也在里面了)

    http://community.gotealeaf.com/t/share-your-experience-of-learning-with-tealeaf-academy/

  • controller 里写的逻辑代码应该写在哪里? at 2013年04月24日

    #25 楼 @ChanceDoor 用到 devise 了呀,这个是课程上讲的一些重构的知识 主要是 Object Oriented 的概念,好处是这样做虽然代码增加了很多,但是如果重用其中的方法会很方便,而且随着 app 不断庞大结构还是会很清晰。

    我可能还是没有掌握好这种模式,所以你看眼花了。

    这是 @knwang 推荐的扩展阅读:

    http://blip.tv/rubynation/jeff-casimir-fat-models-aren-t-enough-5562605 http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/

  • controller 里写的逻辑代码应该写在哪里? at 2013年04月24日

    #23 楼 @ChanceDoor 刚才有一个 initialize 的错误,重新修改了。

  • controller 里写的逻辑代码应该写在哪里? at 2013年04月24日

    @ChanceDoor 没有看到你已经重构一轮了,我这个是从你最初的代码开始重构的。

  • controller 里写的逻辑代码应该写在哪里? at 2013年04月24日

    我也是新手,上完 @knwang 老师的课程后学到的,用了 service object 和 domain object 仅供参考(对 devise 和 Savon 不熟悉,而且还没有完全掌握)。

    #app/controller/sessions_controller.rb
    class SessionsController < Devise::SessionsController
      def create
        #首先调用API验证动态令牌
        param={
            'AuthName' => params[:user][:email],
            'AuthPasswd' => params[:user][:ikey],
        }
        client = Savon.client(wsdl: "#{request.protocol}#{request.host_with_port}/Auth.wsdl")
        self.resource = warden.authenticate!(auth_options)
    
        result = LoginDeduction.new(client.call(params), resource, sign_in(resource_name, resource)).deduct
    
        if !result.dynamic_validation_pass?
          redirect_to login_path, alert: "Ikey error : Invalid username or ikey."   #动态令牌验证失败
        elsif result.sign_in? && result.term_expired?
          sign_out
          redirect_to login_path, alert: "Account error : This account is expired."
        else
          set_flash_message(:notice, :signed_in) if is_navigational_format?
          respond_with resource, location: after_sign_in_path_for(resource)
        end
      end
    end
    
    
    #app/serives/login_deduction.rb
    class LoginDeduction
      attr_reader :dynamic_validation_result, :user_term, :sign_in_result
    
      alias_method :sign_in?, :sign_in_result
      alias_method :dynamic_validation_pass?, :dynamic_validation_result
    
      def initialize(result, resource, sign_in_result)
        @dynamic_validation_result = result
        @user_term = UserTermPolicy.new(resource.deadline)
        @sign_in_result = sign_in_result
      end
    
      def deduct
        if dynamic_validation_pass?
          deduct_user_sign_in
        else
          LoginResult.new(dynamic_validation: false, sign_in: false)
        end
      end
    
      def deduct_user_sign_in
        if sign_in?                      #devise的登录成功
          user_term = UserTermPolicy.new(resource.deadline)
          if user_term.has_a_deadtime?            #如果有过期时间
            if user_term.is_expired?                 #如果已过期 登录失败
              LoginResult.new(sign_in: true, dynamic_validation: true, expired: true)
            else
              LoginResult.new(sign_in: true, dynamic_validation: true)
            end
          else
            UserTerm.new(user).update_deadline   # 如果没有过期时间 即新账号 就写入过期时间为一个月后,并登陆成功
            LoginResult.new(sign_in: true, dynamic_validation: true)
          end
        else
          LoginResult.new(sign_in: false, dynamic_validation: true)
        end
      end
    end
    
    class LoginResult
      attr_reader :dynamic_validation, :sign_in, :expired
    
      alias_method :dynamic_validation_pass?, :dynamic_validation
      alias_method :sign_in?, :sign_in
      alias_method :term_expired?, :expired
    
      def initialize(options={})
        @dynamic_validation = options[:dynamic_validation]
        @sign_in = options[:sign_in]
        @expired = options[:expired]
      end
    end
    
    
    #app/models/user_term.rb
    class UserTerm
      attr_accessor :user
    
      def initialize(user)
        @user = user
      end
    
      def update_deadline
        user.update_attributes(deadline: Time.now + 1.month)
      end
    end
    
    #app/models/user_term_policy.rb
    class UserTermPolicy
      attr_reader :deadtime
    
      def initialize(deadtime)
        @deadtime = deadtime
      end
    
      def has_a_deadtime?
        deadtime != nil
      end
    
      def is_expired?
        deadtime <= Time.now
      end
    end
    
  • 一个拖延症患者的精益 (Lean Startup) 实践 at 2013年03月26日

    支持!@xmonkeycn 太棒了,我也想贡献代码!

  • 使用 Mailgun 建立一个数据驱动方法来保持用户 Email 更新 at 2013年03月23日

    #1 楼 @Rei 不厉害啦,是老师比较厉害了。。

    晚上回来我再重新编辑下排版

  • 我的成长 (新手) at 2013年02月27日

    #1 楼 @lgn21st 谢谢鼓励!

  • 我的成长 (新手) at 2013年02月27日

    #5 楼 @D90 原来我报名的时候是好像是 270 刀。

    #4 楼 @ruchee 这本书一开始的时候看过了,确实很好。看书和找老师带,各有各的好处吧。

  • 寻自动加载翻页 at 2013年01月09日

    如果是 railscasts pro 账户的话 这里有一个 http://railscasts.com/episodes/114-endless-page-revised

    还有一个是免费的,不过是很早以前的 http://railscasts.com/episodes/114-endless-page

  • 号召贴:组队报名 railstutors 课程 at 2012年10月18日

    已经报名 10 月 24 号 的英文课程了,当然还是期待中文的。大家报名啊!!

  • 在 Gemfile 中通过 bundle install 安装源自 github 的 gem 后如何删除 gem 呢? at 2012年10月11日

    谢谢了 我去试试

  • 在 Gemfile 中通过 bundle install 安装源自 github 的 gem 后如何删除 gem 呢? at 2012年10月11日

    thx,不过还是提示错误。说 gem 没有被安装。

  • 刚刚报了 Kevin 的 Rails Tutors 课程,希望和大家共同学习 at 2012年10月10日

    我也报名参加 Rails Tutors 了,不知道人够不够组一个中文学习小组

  • Rails 学习推荐书籍列表 at 2012年09月05日

    #10 楼 @sailtsao 有推荐的淘宝店么?最近想打几本英文原版。非常感谢

  • 新一期的 Railscasts China The Rails Initialization Process 发布了 at 2012年08月10日

    #5 楼 @poshboytl 我在用 ML GM 没有声音。。。

  • 现在的收藏功能一直不能用啊 at 2012年07月04日

    #2 楼 @huacnlee 两天没有上来。。。好了现在可一看到了 高效啊!

  • [上海][2012年05月29日] Ruby Tuesday 基于 Rails 和 iPhone 的移动开发实践 at 2012年06月28日

    还在持续期待中。。。难道真的没有下文了?

  • [上海][2012年05月29日] Ruby Tuesday 基于 Rails 和 iPhone 的移动开发实践 at 2012年06月12日

    。。。没有下文了?求分享

  • 1
  • 2
  • 下一页
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English