Получить идентификатор объекта, сохраненного с ассоциацией - PullRequest
1 голос
/ 12 января 2011

Вот мой сценарий: у меня есть три модели Subscriber, Subscription, Plan, с has_many :through отношениями между подписчиком и планами.Подписчик может иметь несколько планов с одним активным планом.Каждый раз, когда абонент выбирает план, я сохраняю его, используя accepts_nested_attributes_for :subscriptions.Я получаю один план из формы.Теперь моя проблема в том, что я хочу получить идентификатор записи, созданной в таблице подписок.

В настоящее время я извлекаю ее, находя все подписки для подписчика, упорядоченного по убыванию на дату создания и получающего сначала из набора результатов.Есть ли прямой способ сделать это?

Ответы [ 2 ]

1 голос
/ 12 января 2011

Предположим, у вас есть это в контроллере:

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

, тогда вы можете найти последний идентификатор подписки с:

 @subscriber.subscriptions.order("created_at DESC").first.id
0 голосов
/ 12 января 2011

@subscriber.subscription.last

является более дешевым решением. в противном случае вы можете написать собственный метод в вашей модели.

...