मेरे पास तीन हैश हैं जिन्हें मैं नई कुंजी - checks के तहत base_options में मर्ज करना चाहता हूं। मूल रूप से मैं जो हासिल करना चाहता हूं वह है:

  {
    base_options,
    checks: {
      document_check,
      identity_check,
      dummy_check,
    }
  },

नमूना हैश डेटा के नीचे:

  dummy_check = {
    dummy: {
      enabled: true,
      preferences: {
        state: 0,
        replay: true,
      },
     }
    }

  identity_check = {
    identity: {
      enabled: true,
      preferences: {},
    },
  }

  document_check = {
      document: {
        enabled: true,
        preferences: {
          face: false,
          liveness: false,
          docs_all: true,
        },
      },
    }

  base_options = {
    send_email: true,
    send_reminder: false,
    reset_client_status: true,
  }

तो अगर मैं base_options.merge!(checks: document_check.merge!(identity_check, dummy_check)) करता हूं तो मुझे अपेक्षित हैश प्राप्त होगा जो है:

  {
    send_email: true,
    send_reminder: false,
    reset_client_status: true,
    checks: {
      document: {
        ...
      },
      identity: {
        ...
        },
      dummy: {
        ...
      }
    },
  }

लेकिन यह बहुत अधिक लचीला नहीं है और मुझे नहीं पता कि .merge! का एक पंक्ति में दो बार उपयोग करना बकवास नहीं है। क्या कोई अन्य विकल्प हैं?

मैं रूबी 2.7 और रेल 6 का उपयोग कर रहा हूं

0
mr_muscle 6 जुलाई 2021, 17:27

2 जवाब

अगर मैं सही ढंग से समझूं, तो आप डबल स्प्लैट आज़मा सकते हैं **. आप इस तरह उपयोग कर सकते हैं:

base_options.merge(
  checks: **document_check, **identity_check, **dummy_check
)
0
Int'l Man Of Coding Mystery 6 जुलाई 2021, 14:52

उत्तर आपके प्रश्न में है, नीचे अंतिम परिणाम प्राप्त करने का एक सरल तरीका हो सकता है। नीचे बेस_ऑप्शन, डॉक्यूमेंट_चेक, आइडेंटिटी_चेक, डमी चेक के मानों को इनिशियलाइज़ करने के बाद है।

base_options = {
    base_options: base_options,
    checks: {
      document_check: document_check,
      identity_check: identity_check,
      dummy_check: dummy_check,
    }
  }

=> {:base_options=>{:send_email=>true, :send_reminder=>false, :reset_client_status=>true}, :checks=>{:document_check=>{:document=>{:enabled=>true, :Preferences =>{:चेहरा=>झूठा, :जीवता=>झूठा, :docs_all=>true}}}, :identity_check=>{:identity=>{:enabled=>true, :Preferences=>{}}}, : डमी_चेक => {: डमी => {: सक्षम => सच,: प्राथमिकताएं => {: राज्य => 0,: फिर से खेलना => सच}}}}}

0
Prashanth Adepu 7 जुलाई 2021, 06:27