3 টি কাস্টম ভ্যালিডেটর কোথায় রেলগুলি সংরক্ষণ করা উচিত?


94

আমি ডক্স / ওয়েবসাইটগুলি দেখেছি যে কাস্টম ভ্যালিডিটারগুলির কোনও প্রকল্পের ডিরেক্টরি /libবা /lib/validatorsডিরেক্টরিতে যাওয়া উচিত । আমি খুঁজে পেয়েছি (অন্য পোস্টের উত্তর পড়ে) যে তারা কেবল কাজ করে বলে মনে হচ্ছে config/initializers। কেউ কি জানেন, বা অফিসিয়াল ডকুমেন্টেশনের একটি পয়েন্টার আছে যা দেখায় যে কাস্টম ভ্যালিডিটাররা কোথায় বাস করবে?


উত্তর:


221

আপনি যদি নিজের কাস্টম ভ্যালিডিটার স্থাপন করেন তবে app/validatorsসেগুলি আপনার config/application.rbফাইল পরিবর্তন করার প্রয়োজন ছাড়াই স্বয়ংক্রিয়ভাবে লোড হবে ed


এটির জন্য আপনাকে কিছু রত্ন / কনফিগার যুক্ত করতে হবে কিনা আমি জানি না, তবে রেলের 3.2.8 এর অধীনে এটি কাজ করে না। বিশেষত, আপনার অ্যাপ্লিকেশন / ভ্যালিডিটার / ??? এর মধ্যে কেবল আপনার ভ্যালিডেটারটি ফেলে দেওয়া কাজ করে না r
— ডগ

17
বৈধতাদাতা শ্রেণীর নাম দেওয়া হলেও আন্ডারকর্ডিং করা হয়েছে ঠিক একইভাবে ডগটি ভ্যালিডেটর ফাইলটির নাম দেওয়ার চেষ্টা করুন: মাইকুলভালিডেটর অ্যাপ্লিকেশন / ভ্যালিডিটার / মাই_কুল_ডিয়িয়েটার.আরবি
— সমমান

14
@ ডগ আপনার সার্ভারটি পুনরায় চালু করতে হবে। আরম্ভের সময় অটোল্যাড পাথগুলি প্রসারিত করা হয় যাতে আপনি এটি না করা পর্যন্ত নতুন সাবফোল্ডারগুলি বাছাই করা যায় না।
— টিমো

আমি অ্যাক্টিভোডেল :: যাচাইকরণ :: হেল্পার ম্যাথডসকে আমার নতুন বৈধতার জন্য একটি সহায়ক যুক্ত করতে (যেমন অ্যাড্রেসভিডিয়েটারের জন্য বৈধতা_ড্রেস) যুক্ত করতে চাই। আমি যখন অ্যাপ / বৈধতা / ঠিকানা_ডোভেটিটর.আরবিতে বানরকিচ এবং মানদাতা উভয়কে অন্তর্ভুক্ত করি তখন কেবল ঠিকানাভালিডেটর অবজেক্টটি লোড হয়, বানরপ্যাচ নয়। আপনি কি ছেলেরা একই আচরণের অভিজ্ঞতা নিচ্ছেন?
— jshkol

4
spring stop5.2 কারাগারে আমার জন্য প্রয়োজনীয় ছিল, অন্যথায় এটি তোলা হয়নি।
— জ্যাক কিনসেলা ১১

15

আপনি যদি এটি আপনার /config/application.rb ফাইলে যুক্ত করেন:

config.autoload_paths += %W["#{config.root}/lib/validators/"]

তারপরে রেলগুলি স্বয়ংক্রিয়ভাবে আপনার ভ্যালিডিটারগুলি শুরু করার সময় লোড করবে (ঠিক তেমন / কনফিগারেশন / ইনিশিয়েলাইজার /) তবে আপনি আপনার ভ্যালিডেটরগুলির একটি সুন্দর, নামযুক্ত স্থানে পরিষ্কার কাঠামো রাখবেন।


9
ভাল ধারণা তবে আপনার config.autoload_paths += %W(#{config.root}/lib/validators/)
— কোডটির

6

lib/validatorsএখন পর্যন্ত সবচেয়ে পরিষ্কার মনে হচ্ছে। তবে আপনার এগুলি আপনার মডেলগুলির আগে লোড করার প্রয়োজন হতে পারে, তাই সম্ভবত কোনও প্রাথমিককরণ থেকে from


4

কাস্টম বৈধতা সম্পর্কে অফিসিয়াল ডক্স এখানে । এএফআইএকে প্রাসঙ্গিক মডেলগুলিতে রাখাই এটি একটি ভাল অনুশীলন।


5
যদি না এগুলি একাধিক মডেলের ক্ষেত্রে প্রযোজ্য হয় তবে সেক্ষেত্রে ডিআরওয়াই থাকার জন্য আপনার এগুলি অন্য কোথাও রাখা উচিত।
— অ্যান্ড্রু মার্শাল

এগুলি সম্ভবত তারা যা সম্ভবত কারণ হ'ল অন্যথায় তাদের জন্য একটি পৃথক শ্রেণি তৈরির সামান্য বিষয় নেই।
— জাকুব হাম্পল

7
@ জাকুব হ্যাঁ রয়েছে: একক দায়িত্বের নীতি
— ম্যাটউইন

4
অফিসিয়াল ডক্সের লিঙ্কটি নষ্ট হয়ে গেছে। এখানে সেই ডকুমেন্টেশনের বর্তমান অবস্থান; গাইড.আরবিওনরইলস.আর.২
— স্টিঞ্জস্টার 2
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.