奇妙な問題 - 私のコントローラーの 1 つで作成アクションが属性を保存していません - 以下のコードをチェックしてください。最後の 2 行まですべての行が機能します。oauth_token
と はoauth_expires_at
保存されていません。属性に適切な名前が付けられていることなどを確認しました。面白いことに、最後から2行目を次のように変更すると:
omniauth['credentials']['token'] ? provider = omniauth['credentials']['token'] : provider = ''
それは完全にうまく機能します。実際の属性oauth_token
とoauth_expires_at
. 次に、2 つの新しいダミー属性を作成して、そこで機能するかどうかを確認しようとしましたが、機能しません。後で作成された属性oauth_token
が台無しになっているようです。これは移行の問題ですか? 何か案は?
def create
params[:authorization] ? authorization_route = params[:authorization] : authorization_route = 'no authorization (invalid callback)'
omniauth = request.env["omniauth.auth"]
if omniauth and params[:authorization]
if authorization_route == "facebook"
omniauth['extra']['raw_info']['email'] ? email = omniauth['extra']['raw_info']['email'] : email = ''
omniauth['extra']['raw_info']['name'] ? name = omniauth['extra']['raw_info']['name'] : name = ''
omniauth['extra']['raw_info']['id'] ? uid = omniauth['extra']['raw_info']['id'] : uid = ''
omniauth['provider'] ? provider = omniauth['provider'] : provider = ''
omniauth['credentials']['token'] ? oauth_token = omniauth['credentials']['token'] : oauth_token = ''
omniauth['credentials']['expires_at'] ? oauth_expires_at = Time.at(omniauth['credentials']['expires_at']) : oauth_expires_at = ''
end
end