2017-08-14 51 views
0

我是一種新的鐵軌,我想要求用戶在更新他的信息之前輸入他的current_password。我知道這可以通過設計來實現,但是我想在沒有設計的情況下做到這一點,因爲我很難修改設計。rails如何拒絕更新時,參數丟失

我心目中是這樣的:

def update 

     @edi_user = EdiUser.find(@trader_edi_user.edi_user_id) 
     @edi_user.update_attributes(edi_user_params.reject_if{ |attr| params['current_password'].blank? }) 

     redirect_to :back 
    end 

我知道這個代碼是錯誤的,但這種在軌的邏輯可能的?

或者任何人都可以幫助我如何編寫正確的語法?

預先感謝您

+0

爲什麼你不能只是做一個客戶端驗證呢? – Pavan

+0

我已經這樣做了,但我認爲這是錯誤的,因爲系統將非常脆弱, –

回答

0

失蹤屬性跳過更新,

@edi_user.update_attributes(edi_user_params) if params['current_password'].present? 
+0

是的!非常感謝你!你是一個救生員 –

+1

不要忘記檢查密碼是否確實是正確的... – DanneManne

+0

是的,謝謝:) –