获取通过关联保存的对象的ID

时间:2011-01-12 09:37:20

标签: ruby-on-rails associations

这是我的情景: 我有三个模型Subscriber, Subscription, Plan,关系为has_many :through 订户和计划之间。 订户可以有多个计划,其中包含一个活动计划。每当订户选择计划时,我使用accepts_nested_attributes_for :subscriptions保存它。我从表格中得到了一个计划。 现在我的问题是我想获得在订阅表中创建的记录的ID。

目前我正在通过查找订阅者的所有订阅来检索它,该订阅在创建的日期下降并从结果集中获取。 有没有直接的方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

假设你在控制器中有这个:

 @subscriber = Subscriber.find(params[:id])
 @subscriber.update_attributes(params[:subscriber])

然后你可以找到最后一个订阅ID:

 @subscriber.subscriptions.order("created_at DESC").first.id

答案 1 :(得分:-1)

@ subscriber.subscriptions.last

是一种更便宜的解决方案。 否则你可以在模型中编写自定义方法。