Rails将第二个字段名添加到验证错误消息中



rails 5.2ruby 2.6.4

Student记录具有以下字段,部分为:

fname,
lname,
emplid,
class_code,
...

class_code是一个数字1,2,3,4。

1 = freshman
2 = sophomore
3 = junior
4 = senior

我有一个验证:

validates_inclusion_of :class_code, :in => Constants::CLASS_CODES,    
message: "The class code, %{value}, is not considered a valid class code."

这是有效的,但如果我能说出这个错误发生在哪个学生记录上,那将非常有帮助。我想在错误消息中添加字段emplid。这可能吗?

类似于:

message: "For student {emplid}, %{value} is not considered a valid class code."

谢谢你的提示。

您可以将lambda传递给message

validates_inclusion_of :class_code, :in => Constants::CLASS_CODES,
message: ->(student, options) { "For student #{student.emplid}, #{options[:value]} is not considered a valid class code." }

最新更新