2013-09-28 93 views
1

我有一個Rails 3 Active Record finder方法,我試圖將它更新爲rails 4 patten。Rails 4 Active Record finder方法

在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 

回答

1

它是目前還不清楚爲什麼你選擇以這種方式獲取記錄時,你可以做

user = User.find_by_customer_id(event.data.object.customer) 
+0

那麼,軌道4仍然支持這個find_by_customer_id? – Benjamin

+0

是的,動態屬性的發現者[http://api.rubyonrails.org/](http://api.rubyonrails.org/)仍然受支持。您可以使用我提到的表單或以下User.find_by(customer_id:event.data.object.customer) –

+0

如果您滿意或請求更多詳細信息,請考慮接受答案 –

-1

find_by_*已被棄用。

在Rails 4,請使用find_by像這樣:

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

您可以在這個偉大的博客中瞭解更多關於已過時發現者:What's new in Active Record [Rails 4 Countdown to 2013] | The Remarkable Labs Blog。或結帳CodeSchool的Rails 4: Zombie Outlaws當然。

+0

這是不正確的。唯一被棄用的finder是'find_all_by _...''find_last_by _...''find_or_create_by _...''find_or_initialize_by _...''scoped_by _...' – Mike

相關問題