1
2
您可以定义一个直通设施:
我一般不喜欢用
|
2
23
Ruby附带的Forwardable模块可以很好地做到这一点:
|
3
8
如果是纯红宝石,则使用 Forwardable 是正确的答案吗 如果是铁轨的话我会用的 delegate ,例如
|
4
4
您可以使用一个模块:
有点难看,但比使用
|
5
4
从设计的角度来看,我认为,即使所有人的答案都一样
但是,我可以看到一些情况下你希望这种行为,例如当你
而且,您正确地认为ActiveRecord确实广泛地利用了
|
6
3
我认为最好的方法是 the Dwemthy's array method . 我要查一下,再填一些细节,但这是骨架 编辑 耶!工作!
|
7
2
您也可以这样做:
|
8
1
这听起来有点像是在逃避,但实际上很少有必要这样做,当你可以轻松地调用foo.color时。例外情况是,如果有许多类定义了颜色方法。@var可能是几个类中的一个,您希望显示颜色而不管。 在这种情况下,我会问你自己,你在哪里更多地使用这个方法——在课堂上,还是在模型上?它几乎总是一个或另一个,把它作为一个实例方法没有任何错误,即使它在所有实例中都是相同的。 在极少数情况下,您希望两种方法都“可调用”,您可以执行@var.class.color(不创建特殊方法)或创建这样的特殊方法: DEF颜色 self.class.颜色 结束 我肯定会避免catch all(方法丢失)解决方案,因为它可以让您真正考虑每个方法的用法,以及它是否属于类或实例级别。 |
Stilian · 存储库设置中没有Github页面部分 2 年前 |
Kellen · 查看$卷展栏功能列表 2 年前 |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
johncssjs · 将数组转换为每个元素的嵌套哈希 2 年前 |
solidsnake99 · Rails db:如何绕过验证 2 年前 |