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
।