ไม่รวมชื่อแอตทริบิวต์ที่นำหน้าในข้อความแสดงข้อผิดพลาด

ฉันมีความเป็นสากลอย่างง่าย:

attributes:
  user:
    login: Login
errors:
  template:
    header: "Errors"
    body: ""
  models:
    user:
      attributes:
       login:
         taken: "The chosen {{attribute}} is already registered"

ข้อความแสดงข้อผิดพลาดผลลัพธ์จะเป็นดังนี้:

เข้าสู่ระบบ เข้าสู่ระบบที่เลือกได้ลงทะเบียนแล้ว

ดูเหมือนว่า Rails จะเติมข้อความแสดงข้อผิดพลาดพร้อมชื่อแอตทริบิวต์ไว้ข้างหน้าโดยอัตโนมัติ สิ่งนี้บังคับให้ฉันจัดเรียงข้อความด้วยวิธีเดียวเท่านั้น - โดยมีชื่อแอตทริบิวต์เป็นคำแรก

ฉันต้องการข้อความแสดงข้อผิดพลาดต่อไปนี้:

การเข้าสู่ระบบที่เลือกได้ลงทะเบียนไว้แล้ว

ฉันจะกำหนดค่า Rails ไม่ให้เติมข้อความแสดงข้อผิดพลาดด้วยชื่อแอตทริบิวต์ได้อย่างไร


person AntonAL    schedule 30.07.2010    source แหล่งที่มา
comment
ฉันจะไม่ทำเครื่องหมายคำถามของคุณว่าซ้ำกันเพราะมันแตกต่างกันเล็กน้อยเนื่องจากการใช้ความเป็นสากล แต่ดูคำตอบก่อนหน้าของฉันสำหรับคำถามต่อไปนี้เพื่อดูว่าจะช่วยคุณหรือไม่: ลบชื่อฟิลด์ออกจากข้อความตรวจสอบวัตถุ   -  person mikej    schedule 30.07.2010
comment
จริงๆ แล้ว นั่นกำลังจะช่วยฉันอยู่ สำหรับคำถามที่คล้ายกันซึ่งตอนนี้ไม่ต้องถามแล้ว   -  person NinjaCat    schedule 31.07.2010


คำตอบ (1)


คุณต้องระบุรูปแบบข้อความแสดงข้อผิดพลาดเพื่อลบชื่อรุ่น ฉันเชื่อว่าสิ่งนี้เป็นไปได้เฉพาะใน Rails 3.2.6 ขึ้นไป มีรายละเอียดเพิ่มเติมเกี่ยวกับบท I18n ใน Rails Guides

en:
  errors:
    format: "%{message}"

ค่าเริ่มต้นคือ %{attribute} %{message}

person Mohamad    schedule 07.10.2012
comment
@MegaTux ฉันเชื่ออย่างนั้นใช่ แต่ฉันไม่แน่ใจ - person Mohamad; 14.10.2015
comment
ฉันค่อนข้างแน่ใจว่าคำตอบคือไม่คุณไม่สามารถ ฉันไม่สามารถเข้าใจได้ - person Nick McD.; 22.06.2017
comment
@NickMcD คุณสามารถปรับแต่งข้อผิดพลาดได้อย่างละเอียดที่สุดเท่าที่จะเป็นไปได้ สามารถทำได้ การทำงานกับไฟล์ไม่ใช่เรื่องง่าย - แต่อ่านคำแนะนำ - มันจะช่วยได้ - person MageeWorld; 13.08.2017