railsでupdateのときにpasswordのバリデーションを回避する
userモデルを更新するとき、パスワードも一緒に更新する画面構成だといいけど、twitterなどの最近の多くのWEBサービスと同じようにパスワードは別口で、という場合にどうしたら良いかわからなかった問題。
2個書けばよかった。
validates :password, length: {minimum: 6}, on: :create validates :password, length: {minimum: 6}, on: :update, allow_blank: true
@user = User.unscoped.find(current_user.id) if @user.update_attributes(params[:user]) flash[:success] = I18n.t('users.edit.updated') else flash[:failure] = I18n.t('users.edit.failed') end render 'profile'
けど、1つでできねーかなぁ。。