帮助转发朋友的公司的招聘贴,现在团队里面有金融大牛,可以有不一样的视野,感兴趣的朋友真心推荐去试一试
其实还有更惨的,ree -> ruby2, rails3 -> rails4
怒赞之!!!
@vincent 大神言之有理!
@ericguo 为什么不在 windows 下用 vagrant 安装一个 linux 虚拟机?windows 下肯定有很多不兼容的东西
内容有点乱,load 和 require 是 Kernel 提供的类加载接口,extend 和 include 是互相引用的接口,有本质区别
Tips: 问题里面最好能写清楚你想要达的效果以及你遇到的问题,并且附上一些例子,否则无法对症下药
泛泛的说,建议直接用 ActiveSupport,跟着社区走。
用 bundler 引入 active_support 的方案见Bunlder 管理第三方 Gem. 看你提到 "避免写很多 require" ,这里你需要的是 ActiveSupport 中的 eager_autoload 扩展。
本文中没有提及一些不常用的东西,比如 ActiveSupport 可以在 sso.rb 支持这样的目录:
sso.rb
sso
auth
form_auth.rb
api_auth.rb
sso.rb 只需要做如下的修改:
# sso.rb
extend ActiveSupport::Autoload
# 配置一个相对路径
autoload_under :auth
# load sso/auth/form_auth.rb 和 sso/auth/api_auth.rb,中间的 auth 是前面的 autoload_under 指定的
eager_autoload do
autoload :FormAuth
autoload :ApiAuth
end
如果想自己扩展内核类加载,可以采用和 ActiveSupport 类似的方案实现,只要确定一个规则,详见 Rails 中实现: https://github.com/rails/rails/blob/master/activesupport/lib/active_support/dependencies/autoload.rb
这种好“闻”必须要顶一下!
头像已加,走你!