Noob 帮助重新格式化 ifs 以 case Rails

发布于 2024-11-26 06:48:06 字数 644 浏览 0 评论 0原文

大家好,谁能帮我用 Ruby 将此代码重构为 case 语句

def can_save?
    if signed_in?
      @user.updating_password = false
      return true if @greeting.save & @user.save
    elsif !guest_user? & @greeting.valid? & @user.valid?
         sign_in(@user)  if @greeting.save & @user.save
         return true
    elsif guest_user?
      if !params[:user][:email].blank? & (@user.valid? & @greeting.valid?)
        if (@greeting.save & @user.save)
          sign_in(@user)
          return true
        end
      elsif params[:user][:email].blank?
        return true if @greeting.save
      end
    end
  end

Hi can anyone help me refactor this code into case statements in Ruby

def can_save?
    if signed_in?
      @user.updating_password = false
      return true if @greeting.save & @user.save
    elsif !guest_user? & @greeting.valid? & @user.valid?
         sign_in(@user)  if @greeting.save & @user.save
         return true
    elsif guest_user?
      if !params[:user][:email].blank? & (@user.valid? & @greeting.valid?)
        if (@greeting.save & @user.save)
          sign_in(@user)
          return true
        end
      elsif params[:user][:email].blank?
        return true if @greeting.save
      end
    end
  end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烙印 2024-12-03 06:48:06
def can_save?
  validation_check

  if signed_in?
    @user.updating_password = false
  else
    unless params[:user][:email].blank?
      sign_in(@user)
    end
  end

end


private

def validation_check
  if @user.valid? && @greeting.valid?
    @user.save
    @greeting.save
  else
    return
  end
end
def can_save?
  validation_check

  if signed_in?
    @user.updating_password = false
  else
    unless params[:user][:email].blank?
      sign_in(@user)
    end
  end

end


private

def validation_check
  if @user.valid? && @greeting.valid?
    @user.save
    @greeting.save
  else
    return
  end
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文