Rails 的话 ActiveSupport 里提供了一个快速反序列化 XML 到 Hash 的方法,没记错是 Hash.from_xml
可以查查文档
有机会参加下当地的 Ruby 社区聚会,当面交流实地看看老手的做法。 另外 Rails 不仅是定制性强,之前因为给 iOS 客户端上实现 自定义 URL 跳转,研究过市面上各语言流行 Web 框架的路由匹配实现,Rails 的思路不仅新颖,而且高效,没有看到其他框架能达到这个高度的。
#19 楼 @miserytan 最好的方案是虚拟机里装 Linux 开发了,Vagrant 也是麻烦。 目前升级到 Win 10 AU 通过 WSL 也可以拿到一个相当不错的接近原生 Linux 的开发环境。 如果纯 Win 环境,若部署在 Linux 下的话,可能会遇到意料外的情况(主要是 Gem 的问题)。
IDE 的话,Aptana 和 RadRails 最好别用了,死而不僵的东西,用 Atom、VS Code 这些编辑器就可以替代了。 目前唯一能愉快使用和功能正常的只有 RubyMine。
Aptana 和 RadRails 已经半死不活了...能换 RubyMine 也会好很多
从 CMD 启动 rails s 就绕开这问题了吧...
顺带提一句... 如果有精力更新 Doorkeeper 的话,我想把那堆混乱的业务逻辑整理成 ServiceObject,模型整理成 Repository 模式。Doorkeeper 的测试的代码腐化的不行了。。。这个才是打击我热情的最大阻力。。
#3 楼 @betterthornbird 可以,因为 Doorkeeper 的业务逻辑是和控制器分离的,你直接定制控制器和里面的 action 就可以了,扩展你需要的功能,屏蔽你不希望包含的。业务逻辑部分可以复用的就拿过来复用,不用就扔着就可以了。
或者还有个方案是参考下这个文章(不确定你是否有读过):https://blog.yorkxin.org/2013/10/08/oauth2-ruby-and-rails-integration-review
我曾是 doorkeeper 的活跃提交者。doorkeeper 的代码质量是历史原因了,毕竟好几年的项目,模型和控制器部分我已经重构过了,业务逻辑部分因为工作重心转到其他领域,没有精力维护(之前我给主要的维护者讲过其他部分的重构思路,但是他总是忽略掉...感觉主要维护者 tute 的工作重心也不在这,所以没有意愿解决结构问题,自己提交的代码很少)
不过还是建议使用 doorkeeper,实现协议是个体力活,而且 doorkeeper 其实是有大量团队不乏上市企业在使用的,所以虽然代码质量有一些糟糕,但是综合来看还是久经考验的。
另外,在我看来,如果让我在 doorkeeper 的基础上实现类似微博开放平台那样的效果,并不难,毕竟是 Ruby 自身的优势。。。难度不会高于定制 Devise。
PS. 如果真的要造个轮子,不妨来重构 Doorkeeper 吧!
组合拳啊。。。 log pry better_error
对应代码只在特定 action 执行也很容易,可以在 html 标签上加 class 属性,里面添加好 action 和 controller 信息,然后嘛... jquery 呀
#7 楼 @lilijreey https://github.com/jasl/a_rails_start_up_omakase/blob/master/app/helpers/application_helper.rb#L94-L98 类似这样的写法就可以了,几年前写的,应该还可以用 需要有定制 assets 的页面在 view 里调一下这 helper
更新完了所有主题,撒花
主要还是 Ruby 社区的 Gem 的维护程度高,流行的 Gem 功能满足大多数场景而且也容易定制(这个真的是 Ruby 自身的优点)... (PS. 说 Gemfile 长的难道我们不应该聊聊 NPM 吗。。。
最近在写 Android 就很感慨,绝大多数开源组件(几乎所有的 UI 组件),都是没办法直接引用的,一方面 Jaba 的扩展性极差,另一方面,即使是知名的库,疏于维护也是挺普遍的现象。
再说了,工作毕竟是养家糊口,哪能每个需求都跟做游戏一样...宏观来看一定还是体力活多的...没乐趣也凑合凑合做出来(满足需求、Bug 性能在合理范围)很正常嘛...
所以我认为 Gemfile 长长一串、无脑直接引用真的是好事呀,Gem 能够开箱即用 0 配置本身就说明这个 Gem 贴合业务,伸缩性强了(而且就我过去维护的一些 Gem 来讲,本来就是以这点为目标)。至于说了解 Gem 本身,我觉得可以从两点来讲:1.这个是个人学习欲望的问题 2.不需要了解他的内部细节就已经可以足够满足需要了
bundle 应该默认有 cache 的,所以如果没有改动的话,不应该耗费大量时间在这上面
#15 楼 @towonzhou 高级会员是 ID 号在 1024 之内的,要不就是多少之前的。。。忘了
cool!
#9 楼 @towonzhou 我来解释下我这边的场景吧:
#15 楼 @pinewong 要年度更新才有,就是下周,原理和使用介绍参见 https://blogs.msdn.microsoft.com/wsl/ 有公开的 issue tracker 在 github 上 https://github.com/Microsoft/BashOnWindows
下周 Win 10 年度更新发布会带来 Windows Linux Subsystems,是完全原生的 Linux 支持,比 OS X 的 POSIX 环境原生不知道哪去了,所以不需要 Vagrant、Docker 或是其他虚拟环境,当初微软在 Build 大会上演示的时候就是拿 Ruby+Sinatra 做例子哦~ 如果还是需要逻辑隔离,年度更新开始 Windows 内核原生支持容器化。
之前遇到百度统计的问题,发工单求助,结果工单从未得到响应,但每周都会多一两条百度的各种服务的推广邮件....
#5 楼 @towonzhou 用 SMTP 有个好处,如果你需要做邮件发送的路由的时候(就是 mailer 内做白名单,根据不同邮箱域名使用不同的邮件发送服务来发送),只需要在 mailer interceptor 修改 SMTP 的相关字段即可(类似字典),动态设置 deliver_method 好像不太容易达成这点,尤其是使用独立 IP 的话会建议设置 DKIM 签名,这个使用不同家服务证书会不同。
不过 SendCloud 现在有海外通道了,完全只用 SendCloud 也不是没问题,之前有人提过在网页后台设置域名白名单限制在十条,这个是不太够的,最后还是要扔到程序里来解决。
如果不用 Gem 的话 直接 SMTP 方式就可以了嘛 而且 SendCloud 发送 Gmail 之类个别海外邮件送达率有问题,需要结合一下 Mailgun 之类的服务
不太熟悉 XLSX 格式啊。。。 为什么不直接导出成 CSV 呢?Excel 是可以打开的
#6 楼 @easonlovewan 这种风格写起来不太方便连接后续的语句,所以用的很少,而且楼上也有人提了 Ruby 也有 sprintf,两者效果是等价的 这种格式化字符串的好处是类似显示价格要取两位小数啊,很方便 "%.2f" 即可