রেল 3 জন্য বৈধতা কাস্টম বার্তা


94

মডেলগুলির অভ্যন্তরে বৈশিষ্ট্যগুলিকে বৈধতা দেওয়ার জন্য পেরেলগুলি নতুন উপায় চালু করেছে। আমি যখন ব্যবহার করি

validates :title, :presence => true

এটি কাজ করে তবে যখন আমি একটি কাস্টম বার্তা যুক্ত করার চেষ্টা করি

validates :title, :presence => true,:message => "Story title is required"

একটি ত্রুটি উত্পন্ন হয়

Unknown validator: 'message'

উত্তর:


197

এটা চেষ্টা কর

validates :title, presence: { message: "Story title is required" }

19
উপরের ত্রুটি বার্তাটি থেকে কীভাবে আমি শিরোনামটি সরিয়ে ফেলব? উপরে "শিরোনামের গল্পের শিরোনাম প্রয়োজন" হিসাবে প্রদর্শিত হবে। আমি চাই "গল্পের শিরোনাম প্রয়োজন।" ধন্যবাদ
ডেটাজার

5
=> trueএই উত্তর কোথায় গেছে? এটা কি প্রয়োজনীয় নয়?
ডেভটাপলে

4
অদ্ভুতভাবে @dukesave এটি প্রয়োজনীয় নয়। আপনি কিছু 'সত্যবাদী' পাস করতে পারেন presence
ক্ষতি করুন

4
@ নটড্যান, লিঙ্কটি ভাঙা।
স্টিভেনস্পিল

4
@ মায়ুমি - আপনি একটি ম্যানুয়াল বৈধতা লিখে ম্যাসেজ থেকে বৈশিষ্ট্যটির নামটি মুছে ফেলতে পারেন এবং :baseউদাহরণস্বরূপerrors.add(:base, "Story title is required)
মার্কো প্রিন্স

18

আসলে, আমি এটি আরও ভাল উপায়ে করেছি। আপনি যদি বার্তাটি থেকে ক্ষেত্রের শিরোনাম সরাতে চান তবে আপনার এটি আপনার _for.htmk.erb ভিউতে ব্যবহার করা উচিত:

আপনি এই দৃশ্যের ভিতরে দেখতে পাচ্ছেন:

<ul>
  <% @article.errors.full_messages.each do |msg| %>
  <li><%= msg %></li>
  <% end %>
</ul>

এটি দ্বারা প্রতিস্থাপন:

<ul>
  <% @article.errors.each_with_index do |msg, i| %>
  <li><%= msg[1] %></li>
  <% end %>
</ul>

এইচটিএমকে? কেন, আমি কখনই চাইনি
মার্কো প্রিন্স

1

শর্তযুক্ত একটি বুলিয়ান জন্য একটি কাস্টম বার্তা হতে পারে:

validates :foo,  inclusion: { in: [true, false], message: "cannot be blank" }, if: :bar?

0

আপনি রেল 3 এর HUMANIZED_ATTRIBUTES ব্যবহার করতে পারেন। উদাহরণস্বরূপ উপরের ক্ষেত্রে এটির মতো হবে:

HUMANIZED_ATTRIBUTES = {
:title => "story"
}
 def self.human_attribute_name(attr, options={})
    HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end

এটি আপনাকে ত্রুটি বার্তা দেবে, গল্পের সাথে মডেল অ্যাট্রিবিউট শিরোনামটি প্রতিস্থাপন করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.