我不太確定如何描述這個問題,所以將嘗試清楚。停止發佈到外部服務尋找用戶ID
我們的Rails應用程序中有一個頁面,我們的客戶可以更新其信用卡詳細信息。表單發佈到外部服務以驗證詳細信息。然後透明地重新導向給我們。
最初,我在自己的控制器中進行了測試(完美工作),但我剛剛在我的users_controller中移動了它。
表單帖子和重定向到一個確認操作,它會進行一些檢查。當我從用戶控制器內發帖時,出現以下錯誤:
Couldn't find User with id=k2hx5p36w3g9rxsz
事實上,這是事務的ID。不是用戶。
的URL看起來是這樣的:
http://localhost:8080/settings/confirm?http_status=200&id=k2hx5p36w3g9rxsz&kind=update_payment_method&hash=9c85b12c1242cd58de27b2582c934e34a0e9455e6
在我的控制,我有這樣的:
def billing
@user = current_user
@credit_card = current_user.default_credit_card
@tr_data = CreditCard::TransparentRedirect.update_credit_card_data(:redirect_url => confirm_credit_card_info_url, :payment_method_token => @credit_card.token)
...
end
def credit_card_confirm
@user = current_user
@result = CreditCard::TransparentRedirect.confirm(request.query_string)
if @result.success?
redirect_to user_billing_path, :notice => "Credit card updated"
else
render :action => "billing"
end
end
在我的路線:
match '/settings/confirm' => 'users#credit_card_confirm', :as => :confirm_credit_card_info
我能做些什麼來避免它將ID作爲用戶ID?
就是這樣。使用load_and_authorize_resource和skip_authorize_resource停止驗證。乾杯。小號 – simonmorley