2017-08-14 16 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

是的,谢谢:) –