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.