4 টি ডক্স ব্যবহারের জন্য শক্তিশালী পরামিতির সমস্ত উদাহরণ
params.require(:person).permit(:name, :age)
কেউ দয়া করে ডিকনস্ট্রাক্ট করে ব্যাখ্যা করতে পারেন যে এখানে requireএবং permitএখানে কী ঘটছে ?
4 টি ডক্স ব্যবহারের জন্য শক্তিশালী পরামিতির সমস্ত উদাহরণ
params.require(:person).permit(:name, :age)
কেউ দয়া করে ডিকনস্ট্রাক্ট করে ব্যাখ্যা করতে পারেন যে এখানে requireএবং permitএখানে কী ঘটছে ?
উত্তর:
paramsএকটি হ্যাশ মত একটি নিয়ামক সৌন্দর্য মধ্যে, কিন্তু এটি আসলে একটি দৃষ্টান্ত হচ্ছে ActionController::Parameters, যা যেমন বিভিন্ন পদ্ধতি প্রদান করে requireএবং permit।
requireপদ্ধতি নিশ্চিত একটি নির্দিষ্ট পরামিতি উপস্থিত থাকলে, এবং এটি যদি উপলব্ধ নয়, যে requireপদ্ধতি একটি ত্রুটি ছোঁড়ার। এটি ActionController::Parametersকীটি পাস করার জন্য একটি উদাহরণ দেয় require।
permitপদ্ধতিটি কেবল অনুমোদিত কী এবং মানগুলি ফেরত দিয়ে প্যারামিটার অবজেক্টের একটি অনুলিপি দেয়। একটি নতুন অ্যাক্টিভেকর্ড মডেল তৈরি করার সময়, কেবল অনুমোদিত বৈশিষ্ট্যগুলি মডেলটিতে প্রেরণ করা হয়।
এটি দেখতে অনেকটা শ্বেত তালিকাভুক্ত মত যা পূর্বে অ্যাক্টিভেকর্ড মডেলগুলিতে অন্তর্ভুক্ত ছিল তবে এটি নিয়ামকের মধ্যে থাকার জন্য এটি আরও বোধ করে।
trueকরতে permitted?পদ্ধতি। ডিফল্টরূপে, একটি দৃষ্টান্ত ActionController::Parametersবর্গ ফিরে আসবে falseজন্য permitted?জবাবে trueকরার permitted?মানে প্যারামিটার বস্তুর ভর নিয়োগ ব্যবহার করা যেতে পারে; অন্যথায় অ্যাপ্লিকেশন একটি নিষিদ্ধঅ্যাট্রিবিউট ত্রুটি নিক্ষেপ করবে।
permitউপর requireএছাড়াও অনুমতি এবং ফিরে বস্তু প্রয়োজনীয় পরামিতি অন্তর্ভুক্ত?
আরও সুনির্দিষ্ট হতে হবে, যখন আপনি উদাহরণ তৈরি করেন। করছেন .new(...), সেখানে :personপ্রয়োজনীয় দ্বারা নির্দেশিত হ্যাশ থাকতে হবে এবং ব্যক্তি হ্যাশ কেবল অনুমতি দ্বারা স্বীকৃত :nameএবং :ageনির্দেশিত হবে ।
উদাহরণ:
.new(person: { name: "Bhojendra", age: 32 }) // okay
.new(person: { name: "Rauniyar" }) // okay
.new(person: { name: "Bhojendra", other: 'asdf' }) // not okay, other not permitted
.new(person: { full_name: "Bhojendra Rauniyar" }) // not okay, full_name not permitted
.new(detail: { name: "Bhojendra", age: 32 }) // not okay, must be person
not okayউদাহরণ কী ভিজ্যুয়ালাইজ করতে পারে?
permitতবে তা নয়require।