访问存储在连接表中的列 - Rails

时间:2016-08-21 18:44:49

标签: ruby-on-rails ruby has-many-through

我有一个名为ProductFeatures的联接表,它通过Product加入Featurehas_many: ..., through: product_features个实例,还有一个名为rating的列。

我想在.rating上添加Feature方法,该方法将根据调用它的特定产品实例返回评级浮点数。类似的东西:

Product.find(...).features.first.rating #=> should specific product_feature rating

我试过了:

  • 将caller_id作为参数传递给.rating。这有效,但每次我想获得特定的产品评级功能时都会使用product.id。
  • 使用.caller(使用Obtaining a caller instance或vanilla Ruby)从方法内部
  • binding_of_caller id,但.caller似乎没有让我获得调用实例ID,并且在测试中也会失败,因为调用者是规范的ExampleGroup

1 个答案:

答案 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

希望这对你有帮助!