我有一个名为ProductFeatures
的联接表,它通过Product
加入Feature
和has_many: ..., through: product_features
个实例,还有一个名为rating
的列。
我想在.rating
上添加Feature
方法,该方法将根据调用它的特定产品实例返回评级浮点数。类似的东西:
Product.find(...).features.first.rating #=> should specific product_feature rating
我试过了:
.rating
。这有效,但每次我想获得特定的产品评级功能时都会使用product.id。 .caller
(使用Obtaining a caller instance或vanilla Ruby)从方法内部.caller
似乎没有让我获得调用实例ID,并且在测试中也会失败,因为调用者是规范的ExampleGroup
答案 0 :(得分:0)
您可以通过其他方式获取这些数据。
- 我想在Feature上添加
var addresses = [{ Value : '192.168.0.11' }, { Value : '52.210.29.181' }, { Value : '52.210.128.97' } ]; var IPs = ['192.168.0.1', '52.210.128.97']; var obj = {}; addresses.forEach(function(a, i) { obj[a.Value] = i; }); IPs.forEach(function(i) { if (obj[i] != null) addresses.splice(obj[i],1); }); console.log(addresses);
方法,该方法将返回评分 float基于调用它的特定产品实例。某物 像:
#rating
希望这对你有帮助!