validasi pesan khusus untuk rel 3

94

Rails telah memperkenalkan cara baru untuk memvalidasi atribut di dalam model. Saat saya menggunakan

validates :title, :presence => true

itu berfungsi tetapi ketika saya mencoba menambahkan pesan khusus

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

kesalahan terjadi

Unknown validator: 'message'
Prabesh Shrestha
sumber

Jawaban:

196

Coba ini

validates :title, presence: { message: "Story title is required" }
Pisau
sumber
19
Bagaimana cara menghapus: judul dari pesan kesalahan di atas? Di atas ditampilkan sebagai "Judul Cerita Judul diperlukan". Saya ingin "Diperlukan judul cerita". Terima kasih.
datauser
5
Kemana => trueperginya jawaban ini? Apa tidak perlu?
davetapley
2
@dukedave anehnya itu tidak perlu. Anda bisa menyampaikan apa pun yang 'jujur' presence.
membahayakan
1
@NotDan, tautan rusak.
stevenspiel
2
@Mayumi - Anda dapat menghapus nama atribut dari pesan dengan menulis validasi manual dan menambahkan kesalahan ke :base, misalnyaerrors.add(:base, "Story title is required)
Marco Prins
18

Sebenarnya, saya melakukan ini dengan cara yang lebih baik. Jika Anda ingin menghapus judul bidang dari pesan, Anda harus menggunakan ini pada tampilan _form.htmk.erb Anda:

Seperti yang Anda lihat di dalam tampilan ini:

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

Gantikan dengan:

<ul>
  <% @article.errors.each_with_index do |msg, i| %>
  <li><%= msg[1] %></li>
  <% end %>
</ul>
Mateusgf
sumber
Htmk? Mengapa, saya TIDAK PERNAH
Marco Prins
1

Pesan khusus untuk boolean dengan kondisional mungkin adalah:

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

Anda dapat menggunakan HUMANIZED_ATTRIBUTES rel 3. Contoh kasus di atas akan seperti ini:

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

Ini akan memberi Anda pesan kesalahan, mengganti judul atribut model dengan cerita.

Shyamkkhadka
sumber