0
我有我構建是關聯到用戶的omniauth認證模型。如何使用.tap方法建立關聯記錄?
又名用戶有很多認證。
我希望使用tap來構建這種認證模型的鍵值對,因爲twitter在facebook沒有提供密鑰的情況下提供了一個密鑰。
所以,如果我有這個,我要完成使用.tap
方法,而不是下面的條件語句。
class User < ActiveRecord::Base
def apply_omniauth(omni)
if omni['credentials']['secret']
self.authentications.build(:provider => omni['provider'],
:uid => omni['uid'],
:token => omni['credentials']['token'],
:token_secret => omni['credentials']['secret']
else
self.authentications.build(:provider => omni['provider'],
:uid => omni['uid'],
:token => omni['credentials']['token']
end
end
end
UPDATE:
我想是這樣。這是否與上述相同?
self.authentications.build.tap do |auth|
auth[:provider] = omni['provider'] if omni['provider']
auth[:uid] = omni['uid'] if omni['uid']
auth[:token] = omni['credentials']['token'] if omni['credentials']['token']
auth[:token_secret] = omni['credentials']['secret'] if omni['credentials']['secret']
end
什麼是您的實際問題? – Jesper 2014-10-03 09:07:47
@Jesper現在清楚了嗎? – ahnbizcad 2014-10-03 09:12:05
我相信你不需要自來水可言,'build'可以採取塊。 「憑證」是保證存在的關鍵嗎? – BroiSatse 2014-10-03 09:34:38