ruby-on-rails – 我有一个麻烦来检查这个参数是否为空或者没有在轨道上的ruby上

我正在尝试检查User_avatar是否存在于表单中(由用户提交).如果他选择了不同的图像进行更新,我需要进行裁剪,否则它将重定向编辑页面.

但如果我在控制器上运行下面的代码,如果我选择并发送图像,它会直接重定向编辑页面.

调节器

if @user.update(user_params)

     if((@user.user_avatar.present?) && (!params[:user_avatar].blank?) )
       format.html { render :action => 'crop'}

     else

       format.html { redirect_to edit_user_path,notice: 'user was successfully updated.' }

      format.json { head :no_content }

    end

else

   format.html { render action: 'edit' }

   format.json { render json: @user.errors,status: :unprocessable_entity }

结束

def user_params
params.require(:user).permit(:user,:crop_x,:crop_y,:crop_w,:crop_h,:user_avatar,:fname,:lname,:city_id,:location_id,:email,:password,:course,:phone_no)
end

解决方法

在rails中你可以使用has_key吗?返回true或false的方法,重写上面的if条件

if @user.user_avatar.present? and params[:user].has_key?(:user_avatar)
  # your code
end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...