如何在Rails中从数组中获取many_to_many关联数组

时间:2009-06-14 20:26:00

标签: ruby-on-rails

我在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)。

我可以找出手动的方法,但我想知道是否有更好的方法来做到这一点。

谢谢,

1 个答案:

答案 0 :(得分:0)

在不知道你的意图是什么的情况下,看起来你需要将第一个“发现”转变为命名范围。所以它看起来像: SmsOffer.valid.by_hub_phone_no(unhndledMsg.hub_phone_no).biz_sms_reply_queues

命名范围返回AR代理对象,因此,您可以在它们上使用关联。

什么是“有效”?这不是rails方法。它也是命名范围吗?你也应该把它弄干。