• 蛇年快乐 at 2013年02月18日

    龙年行大运

  • user = User.find(6) user.update_attribute(:name,"fuck") 或者 user.update_attributes({:name=>"fuck"})

  • update_attribute 不行吗?

  • #定义config
    CONFIG={"A"=>["M1"],"B"=>["M2"]}
    #module块
    module M1
    def a
        puts "this is M1 on A"
    end
    end
    module M2
    def a
        puts "this is M2 on B"
    end
    end
    module M3
    def a
        puts "this is M3 on C"
    end
    end
    
    #include负责向类(的实例)追加功能,而extend则只向某特定的对象追加模块的功能.
    #这里修改父类
    class Object
     def self.load_config_module
        CONFIG[self.to_s].each do |module_name|
            eval("extend #{module_name}")
        end if CONFIG && CONFIG[self.to_s]
     end
    end
    #类
    class A
        def self.inherited
           load_config_module
        end
    end
    
    class B < A
    end
    
    class C < A
    end
    
    puts "======A========"
    A.a
    puts "======B========"
    B.a
    puts "======C========"
    C.a
    
    #结果
    $ ruby testrb.rb
    ======A========
    this is M1 on A
    ======B========
    this is M2 on B
    ======C========
    this is M3 on C
    
  • 做 PaaS 需要咋样的成本

  • 你刚才的代码里

    class B < A
        load_config_module
    
        def a
          puts 'b-a'
        end
    end
    

    改成

    class B < A
        def a
          puts 'b-a'
        end
        load_config_module
    end
    

    那么 module 的会覆盖类里的 a,这样应该也是可以满足你的,不过感觉挺不舒服

  • 我提出的处理方式,不是为了让你破坏子类

    而是让你可以根据 config 配置的方式把你的 module 融入你不同的类

    我不太赞成那种破坏的方式,嘿嘿

  • 你看看这样写满足你要求吗?

    #定义config
    CONFIG={"A"=>["M1"],"B"=>["M2"],"C"=>["M3"]}
    #module块
    module M1
    def a
        puts "this is M1 on A"
    end
    end
    module M2
    def a
        puts "this is M2 on B"
    end
    end
    module M3
    def a
        puts "this is M3 on C"
    end
    end
    
    #include负责向类(的实例)追加功能,而extend则只向某特定的对象追加模块的功能.
    #这里修改父类
    class Object
     def self.load_config_module
        CONFIG[self.to_s].each do |module_name|
            eval("extend #{module_name}")
        end if CONFIG && CONFIG[self.to_s]
     end
    end
    #类
    class A
        load_config_module
    end
    
    class B < A
        load_config_module
    end
    
    class C < A
        load_config_module
    end
    
    puts "======A========"
    A.a
    puts "======B========"
    B.a
    puts "======C========"
    C.a
    
    结果
    $ ruby testrb.rb
    ======A========
    this is M1 on A
    ======B========
    this is M2 on B
    ======C========
    this is M3 on C
    

    就是每一个类都需要加一句 load_config_module 如果不加,就不会加载,加载什么就根据你的 config 的配置

  • 新项目,大家怎么看 at 2013年02月17日

    怎么支持啊???

  • 新项目,大家怎么看 at 2013年02月17日

    感觉有搞头

  • 你要在父类里,修改子类的方法? 子类调用 a 方法,a 会覆盖父类的 a,这是正常的继承。

    你要让再父类去修改子类的 a。。。没想过!!! 为什么你不再 B 里去判断你的 include 呢?

  • 刚入行时,公司选的

  • 话说也不需要啊,你之前的 include 的方式也可以啊,通过 config 配置来判断你要 include 什么。 载入什么不是重点吧。

    有点不懂你的需求,呵呵

  • 新项目,大家怎么看 at 2013年02月17日

    差点想歪了,你们是移动客服解决方案,不是具体的某一个行业的体现。

    我开始看完视频后,就想: 这是前端,实际上这项目重要的是后台管理和线下的洽谈,如果真的做像视频里的 LBS 的电子商务。

    细想了回过神来,你们只是视频里面的一个支持。视频误导人,哈哈

  • 新项目,大家怎么看 at 2013年02月17日

    哈哈,视频的手机不错,成本多少钱

  • 好高端啊~

    为啥不用闭包?

  • nestedset 是啥东西? at 2013年02月17日

    再说白点就是可以让你以前用递归查树结构变成了扁平的查询,一句 sql 搞定

  • nestedset 是啥东西? at 2013年02月17日

    是否自关联不是很重要,不过在一张表里会好很多

    简单来说,lft 和 rgt 的值可以用来提高查询的效率 比如按你的那个图来说,你要查树里的 2 这个节点的所有子节点,那就差 lft 大于 2,rgt 小于 11 这样你就可以得到 3、4、5、6、7、8、9、10 这些,都是 2 的子节点,因为 lft 和 rgt 可以作为索引,数值索引查询速度是最快的,所以可以很快定位这些数据

    不单查子节点,兄弟节点,父节点都可以很快获取,你可以去深入研究啦,rails 里有一个 gem 支持这个对象的封装,我记不起啥名字了,以前经常用,嘿嘿。

    封装完后,你 Class.find(x).children 就能通过 left 和 rgt 获得 3、4、5、6、7、8、9、10

  • nestedset 是啥东西? at 2013年02月17日

    嘎嘎,那可以快速获取树的一个算法 不过每次更新都会更新那两个值,查询效率很高

  • 对自己身体不自信。。。没当神仙的根骨啊

  • 哈哈,那里写的!=是说 redirect_to 不是方法的返回 Q 群里有人也问过,应该没解释错吧。拿代码来当话说是很容易误解的。

  • 啥时候来深圳开分公司哈?

  • [北京] 高级项目经理 (ruby) at 2013年02月17日

    @starryin 那啥,看了你眼中靠谱的做 web 开发的同事,应该在小公司工作 2 年,做过 2、3 个中小型项目的程序员就能搞定。 为啥说小公司,因为小公司啥都要熟悉,能搞定,前端后台都能上手。

    不过如果说会你说的那些就是架构师?我真不敢苟同。。。 我眼中的架构师是那些能做支持大数量、大访问量的架构的,嘿嘿。个人看法不需要保持一致!

  • 八卦一下:你放假了吗 at 2013年02月04日

    木年会,木放假,要上到 5 号

  • 看来是惨遭裁员了。。 at 2013年02月02日

    在国内,墙的问题很麻烦,嘿嘿。那啥 openshift 的 DNS 也被封了些 ip 啥的,经常访问不到应用。

  • 我到底要不要重构? at 2013年02月01日

    @blacktulip 哈哈,好好笑