• 过来帮顶,看了社区,觉得还是需要设计一下,不然跟官网风格差得也太远了。

  • 怎么 “造假” 数据? at 2015年06月16日

    #4 楼 @cqcn1991 表示都是自己写脚本,毕竟你现在要的这个是属于业务逻辑相关(因为你的业务会决定怎么点赞,点赞的规则之类)了,很难有插件满足。 ╮(╯▽╰)╭

  • 另外研究了下, #4 楼 @huhongda 提到的 where_values 方法其实也是回归到了 Arel 的方式,因为 ActiveRecord::Relation#where_values 的源码如下:

    def #{name}_values                   # def select_values
      @values[:#{name}] || []             #   @values[:select] || []
    end                                       # end
    

    其中 @values 里边实际上就存储了很多 QueryMethod 需要用到的 Arel 节点 ( Arel::Nodes::Equality 等类型实例)。

    所以 where_values 方法其实返回的就是一个由 Arel::Nodes::Equality 类型的实例组成的数组,跟我上边提到的这段代码返回的内容在结构上是一致的:

    condition = search_fields.map do |field|
      User.arel_table[field].matches("%#{search}%")
    end
    

    唯一不同的只是直接用 Arel 写还可以在查询中使用通配符 %

  • Arel 是 Rails 里边用来管理生成 AST (Abstract Syntax Tree 抽象语法树) 的组件,负责最底层的 SQL 语句生成,使用 Arel 能够获得更高的灵活度。这个代码明显用 arel 重构就可以了:

    def search_user     # Ruby 代码规范中,方法名跟局部变量命名都建议使用下划线形式
      search, offset, rows = *params.values_at(:search, :offset, :limit)
      search_fields = %w(user_id user_name password gender device_name os_name os_version device_id user_type)
    
      # 每个待查询字段都会有一个对应的 matches 匹配条件,最后这些条件之间用 `or` 运算合并,语义即“user_id matches xxx or user_name matches xxx or ...”
      condition = search_fields.map do |field|
        User.arel_table[field].matches("%#{search}%")    # matches 的源码请看 https://github.com/rails/arel/blob/master/lib%2Farel%2Fpredications.rb#L121-L123
      end.inject(:or)
    
      # 使用 Arel 构造的查询子句可以直接用于更高层级的 Query Method,也就是 `where` 方法
      users = User.where(condition).offset(offset).limit(rows)
    
      result = {:total => User.count, :rows => users}
      render json: result
    end
    
  • 关于 rails_admin 的看法。 at 2015年06月15日

    #7 楼 @pathbox Rails 是什么版本?另外需要检查本地跟线上各自 Ruby 版本。一般这种情况就从本地线上不同的环境因素下手 debug。

  • #21 楼 @chairy11 把老板炒了吧

  • #15 楼 @chairy11 没有代码走查?

  • 分开 layout + 文件夹维护,比如

    - layouts
      |- responsive.html.erb
      |- fixed.html.erb
    
    <!-- app/views/layouts/reponsive.html.erb -->
    <%= javascript_include_tag "responsive" >
    <%= stylesheet_link_tag "responsive" >
    
    <!-- app/views/layouts/fixed.html.erb -->
    <%= javascript_include_tag "fixed" >
    <%= stylesheet_link_tag "fixed" >
    
    - assets
      |- stylesheets
        |- responsive
          |- file1.css.scss
          |- file2.css.scss
        |- fixed
          |- file1.css.less
          |- file2.css.less
        |- reponsive.css
        |- fixed.css
      |- javascript
        |- responsive
          |- file1.js.coffee
          |- file2.js.coffee
        |- fixed
          |- file1.js
          |- file2.js
        |- responsive.js
        |- fixed.js
    
    /* app/assets/stylesheets/responsive.css */
    require_tree ./reponsive
    

    当然了,以上只是解决现有的问题,最好还是制定团队规范。

  • 携程这回玩大了 at 2015年05月28日

    #5 楼 @defmacro 哈哈,神奇的四卡四待吗

  • #1 楼 @hooopo 你这么机智好么?

  • 感觉还不如就直接用 Rails 提供的 FormHelper 呢,不过确实感觉 simple_form 很尴尬,简单场景不需要,复杂场景不灵活。

  • 可以抓取 Email 内容吗? at 2015年05月27日

    可以,找一下 POP3 的实现就行了,比如 Ruby 内置的: http://ruby-doc.org/stdlib-2.1.0/libdoc/net/pop/rdoc/Net/POP3.html

    require 'net/pop'
    
    pop = Net::POP3.new('pop.example.com')
    pop.start('YourAccount', 'YourPassword')             # (1)
    if pop.mails.empty?
      puts 'No mail.'
    else
      i = 0
      pop.each_mail do |m|   # or "pop.mails.each ..."   # (2)
        File.open("inbox/#{i}", 'w') do |f|
          f.write m.pop
        end
        m.delete
        i += 1
      end
      puts "#{pop.mails.size} mails popped."
    end
    pop.finish                                           # (3)
    
    1. Call #start and start POP session.
    2. Access messages by using #each_mail and/or #mails.
    3. Close POP session by calling #finish or use the block form of start.

    如果要找第三方库,或许这个可以考虑: https://github.com/mikel/mail#getting-emails-from-a-pop-server

  • #22 楼 @allenfantasy 你给大家卖个萌吧

  • #20 楼 @theblock24block 上届是,这届不好说。毕竟这次主题特别

  • #16 楼 @linsk 一切开放授权的数据,比如国家统计局、地方统计局官方发布的数据,公益组织自己采集或者收集的数据,开发者通过技术手段获取的数据等等。任何产品都欢迎,可以是消费数据的应用,也可以是采集数据的应用,只要想得到的都可以。

  • #14 楼 @linsk 要我为你点赞吗

  • #### 开题
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2015年五月Open Party和武汉酷热的天气一样来袭了!!!
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;继“老腊肉”们的《十年的程序人生》后,Open Party迎来了三位全新的“小鲜肉”。
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本期三位Speaker来头可不小,他们带来的话题是否能激发起你对技术的热情呢?
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Open Party是我们共同的平台!快来一起畅言吧~
    
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;那么,问题来了!
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2015年转眼就要过半了,你这半年有什么收获吗?赶快与我们一起分享下把!
    
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本期Open Party 报名和讲师征集同步进行,
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最近学习有心得,总结一下来和大家分享吧!
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最近工作有收获,总结一下来和大家分享吧!
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;未来学习新规划,总结一下来和大家分享吧!
    
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**总结与分享,是成功的奠基石!**
    
    #### MAY 2015〡武汉Open Party 活动安排
    
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**时间:** 2015年5月23日 周六 13:00 - 17:00
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**地点:** 光谷世界城广场1516 Thoughtworks武汉办公室
    
    ##### Part1:话题分享 13:20 - 15:40
    **Topic1. 分布式系统架构与性能调优** (李涛 任职于 武汉智慧科力信息技术有限公司 创始人之一,技术团队负责人。全栈程序员 5年java web经验,擅长团队建设、应用细节设计、日志设计与分析、性能调优)
    
    * 介绍分布式系统构建经验,深入分享性能调优细节
    * 引导程序员合理设计应用日志
    * 简单介绍web安全策略
    
    **Topic 2: rack middleware 是如何工作的?** (覃(qin)明圆,4年Ruby开发经验,Full-Stack工程师多年Devops经验,喜欢编程,喜欢新事物,能跟随新技术,有轻微代码洁癖 ,同事送绰号“源码菜” 。一位中医大学毕业的Ruby程序员)
    
    * 性能更高(更小的内存占用,解释为什么)
    * 更好的自省,可以更精确的知道某个任务执行的各个环节
    * 更低的学习和使用成本
    
    **Topic3:跨平台手机游戏开发** (于浩洋,曾就职于阿里巴巴、人人网,从事多年互联网产品开发工作。参与主导《全民动漫》《乱世江湖》和《dtHero》多款卡牌手游的开发与发行,有丰富的手游开发经验。出版书籍《Cocos2d-x 3.X手游开发实例详解》)

    
    * 介绍手游开发框架cocos2d-x,环境搭建,以及如何使用cocos2d-x创建helloWorld
    
    ##### Part2:Open Talk 嘉宾访谈,讨论 15:50 - 17:00
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**内容:**讲讲是什么原因让你对这一特定知识进行深入的了解
    
    #### 最后
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;大家还记得上次激烈的讨论场景吗?
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上次讨论你认真在听,因为害羞没有勇敢表达内心想法吗?
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;机会再次来到你的面前,放下害羞,放下忐忑,放下成见,勇敢的发声吧!
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;社区期待听到每一个人的声音!
    
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**5月23号**,我们不见不散咯。
    
    [报名链接](https://jinshuju.net/f/bptlCn#rd)
    
  • #1 楼 @jobthoughtworks 我帮你排版了下,别打我!后边贴源文。。。要是有感觉不当之处,我自觉删下。

    开题

            2015 年五月 Open Party 和武汉酷热的天气一样来袭了!!!         继“老腊肉”们的《十年的程序人生》后,Open Party 迎来了三位全新的“小鲜肉”。         本期三位 Speaker 来头可不小,他们带来的话题是否能激发起你对技术的热情呢?         Open Party 是我们共同的平台!快来一起畅言吧~

            那么,问题来了!         2015 年转眼就要过半了,你这半年有什么收获吗?赶快与我们一起分享下把!

            本期 Open Party 报名和讲师征集同步进行,         最近学习有心得,总结一下来和大家分享吧!         最近工作有收获,总结一下来和大家分享吧!         未来学习新规划,总结一下来和大家分享吧!

            总结与分享,是成功的奠基石!

    MAY 2015 〡武汉 Open Party 活动安排

            时间: 2015 年 5 月 23 日 周六 13:00 - 17:00         地点: 光谷世界城广场 1516 Thoughtworks 武汉办公室

    Part1:话题分享 13:20 - 15:40

    Topic1. 分布式系统架构与性能调优 (李涛 任职于 武汉智慧科力信息技术有限公司 创始人之一,技术团队负责人。全栈程序员 5 年 java web 经验,擅长团队建设、应用细节设计、日志设计与分析、性能调优)

    • 介绍分布式系统构建经验,深入分享性能调优细节
    • 引导程序员合理设计应用日志
    • 简单介绍 web 安全策略

    Topic 2: rack middleware 是如何工作的? (覃(qin)明圆,4 年 Ruby 开发经验,Full-Stack 工程师多年 Devops 经验,喜欢编程,喜欢新事物,能跟随新技术,有轻微代码洁癖,同事送绰号“源码菜” 。一位中医大学毕业的 Ruby 程序员)

    • 性能更高(更小的内存占用,解释为什么)
    • 更好的自省,可以更精确的知道某个任务执行的各个环节
    • 更低的学习和使用成本

    Topic3:跨平台手机游戏开发 (于浩洋,曾就职于阿里巴巴、人人网,从事多年互联网产品开发工作。参与主导《全民动漫》《乱世江湖》和《dtHero》多款卡牌手游的开发与发行,有丰富的手游开发经验。出版书籍《Cocos2d-x 3.X 手游开发实例详解》)


    • 介绍手游开发框架 cocos2d-x,环境搭建,以及如何使用 cocos2d-x 创建 helloWorld
    Part2:Open Talk 嘉宾访谈,讨论 15:50 - 17:00

            内容:讲讲是什么原因让你对这一特定知识进行深入的了解

    最后

            大家还记得上次激烈的讨论场景吗?         上次讨论你认真在听,因为害羞没有勇敢表达内心想法吗?         机会再次来到你的面前,放下害羞,放下忐忑,放下成见,勇敢的发声吧!         社区期待听到每一个人的声音!

            5 月 23 号,我们不见不散咯。

    报名链接

  • 这个东西哪里有卖? at 2015年05月23日

    #2 楼 @newlife 脚撑。但这么小的配件应该没人卖。

  • #9 楼 @lgn21st 好的,可以优先其他跟 Ruby 更紧密相关的活动,非常感谢了!

  • @lgn21st 不知这个活动能否符合置顶要求?如果可以,请求帮忙置顶!

  • 大家好,这就是 Martin 最近在忙的另一个社区活动了,希望大家多多支持!

  • Ionic 玩家 at 2015年05月22日

    来给夕枫主 up one up!

  • 顶一下 B!

  • 吐槽一下 railscasts-china at 2015年05月20日

    #4 楼 @lgn21st 表示理解,辛苦了!你们该考虑吸纳新鲜力量了!

  • 订单的 model 加多一个 number 字段,作为系统唯一订单号,订单号规则就自己定咯,比如结合日期:20150519000001 或者就是完全打乱 7687289809328762,看你自己需要。

  • 手工点赞!

  • #17 楼 @miracle 感谢 Miracle