我在Rails中有以下代码:
@possibleMatchingOffers = SmsOffer.valid.find(:all, :conditions => {:hub_phone_no => unhndledMsg.hub_phone_no})
@matchingContact = @possibleMatchingOffers.biz_sms_reply_queues.valid.find(:all)
我得到的错误:
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
@possibleMatchingOffers是一个数组,所以它不接受使用该关联(.biz_sms_reply_queues)。
我可以找出手动的方法,但我想知道是否有更好的方法来做到这一点。
谢谢,
担
答案 0 :(得分:0)
在不知道你的意图是什么的情况下,看起来你需要将第一个“发现”转变为命名范围。所以它看起来像:
SmsOffer.valid.by_hub_phone_no(unhndledMsg.hub_phone_no).biz_sms_reply_queues
命名范围返回AR代理对象,因此,您可以在它们上使用关联。
什么是“有效”?这不是rails方法。它也是命名范围吗?你也应该把它弄干。