मैं रेल के लिए नया हूँ इसलिए मैं शर्तों के बारे में निश्चित नहीं हूँ लेकिन यहाँ सादृश्य है। मैं व्यक्तियों के लिए एक नया रिकॉर्ड बनाना चाहता हूं लेकिन पोस्ट के पैरामीटर मॉडल से अलग हैं। अग्रिम में धन्यवाद।

व्यक्ति मॉडल:

:name, :email

व्यक्ति नियंत्रक:

def person_params
      params.require(:person).permit(:f_name, :person_email)
end
0
Zy T 7 जून 2021, 08:22

2 जवाब

सबसे बढ़िया उत्तर

या तो आपके द्वारा स्वीकार किए जाने वाले मापदंडों को बदलें, या आपके द्वारा भेजे जाने वाले मापदंडों को बदलें।

दूसरा सबसे आसान है: अपने मॉडल के समान पैरामीटर भेजें। यह फॉर्म हेल्पर्स के साथ काम करेगा और आपको केवल अपने मॉडल में पैरामीटर फीड करने देगा।


यदि आप उन मापदंडों को स्वीकार करना चाहते हैं जो आपके मॉडल से भिन्न हैं, तो आपको उन्हें बदलना होगा। ऐसा करने के कई तरीके हैं। इसे Person_params में करने से निरंतरता सुनिश्चित होती है।

def PersonsController
  ...

  private def person_params
    # Require a person hash.
    pp = params.require(:person)

    # Transform them to match the model.
    # Don't overwrite if the model fields were sent.
    pp[:name] ||= pp[:f_name)
    pp[:email] ||= pp[:person_email]

    # Add the permit using model fields.
    # f_name and person_email will be filtered out.
    pp.permit(:name, :email)
  end
end
1
Schwern 7 जून 2021, 08:52

व्यक्ति नियंत्रक:

def person_params
  params.require(:person).permit(:name, :email)
end

या आपके द्वारा भेजे जाने वाले पैरामीटर बदलें। भूतपूर्व।

{
   'person': {
     'f_name': 'f_name',
     'person_email': 'person@emai.com'
   }
}
0
togi 7 जून 2021, 08:50