Noob帮助重新格式化,如果是Rails案例

时间:2011-07-22 07:17:48

标签: ruby-on-rails-3 switch-statement

您可以帮助我将此代码重构为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

1 个答案:

答案 0 :(得分:0)

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