এখানে অন্য উপায়:
আপনি যদি এই টেমপ্লেটটি ব্যবহার করেন:
<% if @thing.errors.any? %>
<ul>
<% @thing.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
<% end %>
আপনি নিজের কাস্টম বার্তাটি এভাবে লিখতে পারেন:
class Thing < ActiveRecord::Base
validate :custom_validation_method_with_message
def custom_validation_method_with_message
if some_model_attribute.blank?
errors.add(:_, "My custom message")
end
end
এইভাবে, আন্ডারস্কোরের কারণে, পুরো বার্তাটি "আমার কাস্টম বার্তা" হয়ে ওঠে, তবে শুরুতে অতিরিক্ত স্থানটি অদম্য। আপনি যদি শুরুতে অতিরিক্ত স্থানটি না চান তবে কেবল .lstrip
পদ্ধতিটি যুক্ত করুন।
<% if @thing.errors.any? %>
<ul>
<% @thing.errors.full_messages.each do |message| %>
<li><%= message.lstrip %></li>
<% end %>
</ul>
<% end %>
স্ট্রিং.লস্ট্রিয়াপ পদ্ধতিটি ': _' দ্বারা নির্মিত অতিরিক্ত স্থান থেকে মুক্তি পাবে এবং অন্য কোনও ত্রুটি বার্তা অপরিবর্তিত রেখে দেবে।
বা আরও ভাল, আপনার কাস্টম বার্তার প্রথম শব্দটি কী হিসাবে ব্যবহার করুন:
def custom_validation_method_with_message
if some_model_attribute.blank?
errors.add(:my, "custom message")
end
end
এখন পুরো বার্তাটি কোনও অতিরিক্ত জায়গা ছাড়াই "আমার কাস্টম বার্তা" হবে।
আপনি যদি পুরো বার্তাটি "ইউআরএল ফাঁকা রাখতে পারবেন না" এর মতো মূলধন দিয়ে শুরু করতে চান তবে এটি করা যায় না। পরিবর্তে কী হিসাবে অন্য কিছু শব্দ যুক্ত করার চেষ্টা করুন:
def custom_validation_method_with_message
if some_model_attribute.blank?
errors.add(:the, "URL can't be blank")
end
end
এখন পুরো বার্তাটি হবে "URL টি ফাঁকা থাকতে পারে না"