1

我有一个 Rails 3 Active Record finder 方法,我正在尝试将其更新为 rails 4 patten。

在 Rails 3 中,我的代码看起来像这样

StripeEvent.setup do
  subscribe 'customer.subscription.deleted' do |event|
    user = User.find_by_customer_id(event.data.object.customer)
    user.expire
  end
end

在 Rails 4 中,我试过这个,这段代码正确吗?

StripeEvent.setup do
  subscribe 'customer.subscription.deleted' do |event|
    user = User.where(customer_id: (event.data.object.customer) )
    user.expire
  end
end
4

2 回答 2

1

目前尚不清楚为什么您可以选择以这种方式获取记录

user = User.find_by_customer_id(event.data.object.customer)
于 2013-09-28T19:01:15.547 回答
-1

find_by_*弃用。

在 Rails 4 中,请find_by像这样使用:

User.find_by(customer_id: event.data.object.customer)

您可以在这篇精彩的博客文章中阅读有关弃用查找器的更多信息:Active Record 中的新增功能 [Rails 4 Countdown to 2013] | 卓越实验室博客。或者查看 CodeSchool 的Rails 4:Zombie Outlaws课程。

于 2013-10-17T14:43:51.473 回答