你悟到了解决问题的真谛... 所以说还是要自己多琢磨
唔... 那没玩过了
ruby 没有这种语法
你大概可以这样模拟
require 'foo/bar'
Bar = Foo::Bar
b = Bar.new
另外你这个问题的原因是缺少 VC 运行时造成的,从截图看不出来 https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads 都装一遍总不会错
作者就是自己人 @psvr 今年大会他会讲这个
sudo xcode-select --install
大局观也是经验的体现了(不排除悟性高),这种事情在新手阶段得多吃吃亏咯。
知道在做什么,想要什么挺难的
对...新接触一个东西尽量避免被一个细节带偏,不过另一方面是到读文档的阶段,应该已经是过了 Getting start,到上手用的阶段了,那么应该默认已经建立了初步印象。
另外源码上,整个实现一百来行(当然也是因为确实做得事情少),并没有使用“魔法”,通过动态生成模型类可以极大程度复用 Rails 自身提供的机制,从而大幅减少工作量,尤其是需要和前端交互的部分(其实就是在指模型)
这里我实验性的写了一个 options_model 库来实现动态生成模型,但其实这个也不是必要的,用 Virtus ActiveType 都可以
绝大多数系统都不用,复杂的权限控制主要受众是企业系统,其实我做的一系列 xxxCore 都是在探索这个领域。
因为 key
是 []
方法的实参嘛,try
的方法签名应该是 try(method_name, *args, &block)
。
我想说的是 其他语言有 ?.
-> AR 有 try
-> Ruby 把 try 升格成语法,引入 &.
-> 体现平衡性
&.
在语义上和其他语言的 ?.
是完全一致的,其实是补上了一个群众呼声很高的功能,跟 try
应该没有关系(毕竟逻辑都不同),之所以没用 ?.
是因为 Ruby 允许 ?
做方法的结尾,于是对 ?.
的可读性和解析难度都提高了一些,所以改用 &.
来代替
建议这块改写下,try
和 &.
的语义是不同的
try
表达的是 if obj.respond_to?(method) then obj.send method
而 &.
是 unless obj.nil? then obj.send method
本质上是有很大差异的
Ruby 中本来其实有类似的语法,它是 Object#try。
这个是 ActiveSupport 强化的哈,不是 Ruby stdlib 的,文档:http://api.rubyonrails.org/v5.1/classes/Object.html#method-i-try
看你代码是想动态加载一个类,然后知道方法名希望调用他的方法。
那你只需要 require
加载那个文件,如果可以使用 ActiveSupport,可以直接使用 ActiveSupport::Inflector#constantize 将字符串反射成类(和 Java 的 Class.forName
做的事情差不多,不过结果已经是具体的那个类型了),如果不能用 AS,可以看下他的源码,非常简单。
有类了,创建实例只需 klass.new(args)
,动态调用方法也仅需利用 send
,如 obj.send :foo
用一场面试来验证自己吧~
PS:工作时候对业务的理解和翻译能力大过绝对的编码能力
app store 搜就好了,还有好多民间版本,Android 那边应该也一样吧
他说的是这个 团体参加的购票者请填写:https://jinshuju.net/f/1xaJcH
手头没例子... 搜 css svg icon
就好了,可以通过把 svg 设置成背景的方式实现 icon 的
rvm get stable
获取最新版本就好了,这个是发生在那个版本的 bug
帅,这几天有点忙...之后我再拉个微信群...
老手也经常被 devise 搞蒙圈的,不过只要不做高级定制,问题不大
正常不会出这个问题,你要看一下你的 rvm 版本是不是 1.29.0 是这个特定版本在链接 openssl 的时候会有 bug。
一锅端就是... 被一锅端了... 例如被 bomb... 被外星人绑架... 被 @bhuztez 使用天顶星 Erlang 科技洗脑忘记了 Ruby 的用法等