2011-01-12 92 views
1

這裏是我的場景: 我有三個模型Subscriber, Subscription, Planhas_many :through關係 訂閱者和計劃之間。 用戶可以有一個活動計劃的多個計劃。每當用戶選擇一個計劃時,我都會使用accepts_nested_attributes_for :subscriptions來保存它。我從表單中得到一個計劃。 現在我的問題是我想獲得在訂閱表中創建的記錄的ID。獲取與關聯保存的對象的ID

目前我正在通過查找訂閱者的所有訂閱來檢索訂閱,訂閱者在創建日期時降序排列並從結果集中首先取得。 有沒有直接的方法來做到這一點?

回答

1

假設你在控制器有這樣的:

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

然後你可以找到過去的訂閱ID與:

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

我已經在我當前的代碼中使用這個解決方案。抱歉在這個問題中沒有提及它。我現在更新了它。 – Pravin 2011-01-12 10:22:37

-1

@ subscriber.subscriptions.last

是一個廉價的解決方案。否則你可以在你的模型中寫一個自定義的方法。

+2

-1。如果你沒有指定順序,`.last`可以根據數據庫給你不同的記錄。在MySQL中,並不總是最後創建的記錄。 – klew 2011-01-12 15:41:45

相關問題