ruby-on-rails - 根据上下文自定义验证错误消息

标签 ruby-on-rails ruby-on-rails-4

我需要根据表单的上下文和位置为同一模型提供不同的错误消息。

对于验证 first_name 是否存在的 User 模型:

  • 在后台页面可以有验证消息“名字不能为空”
  • 在注册页面中,消息应该是“请输入您的名字”

我正在寻找一个简洁且面向最佳实践的解决方案,因为我不想使用 View 助手等进​​行破解。

感谢任何提示,谢谢

最佳答案

您可以使用 validate User 模型中的方法。像这样的东西

validate do |user|
 if user.first_name.blank? && user.id.blank? 
   # id blank means the user is in registration page as he is new user. 
   user.errors.add(:base, "Please type your first name")
 elsif user.first_name.blank?
   user.errors.add(:base, "First name can't be blank")
 end
end

关于ruby-on-rails - 根据上下文自定义验证错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23319603/

相关文章:

ruby-on-rails - 模型对象的 Rails4 : undefined method `committed?

html - link_to + css 无法正常工作

ruby-on-rails - 属于同一模型 Rails 的模型实例

ruby-on-rails - 如何将 Cucumber 测试结果保存到文件中

ruby-on-rails - 修改参数嵌套哈希的最佳方法是什么?

ruby-on-rails - Ruby/Rails 小数点百分比

ruby-on-rails - Rails 应用程序部署,rake DB :migrate doesn't create table and want table to already be here to create them

ruby-on-rails - Rails 中的 Kerberos 身份验证

html - Bootstrap 3/Rails 网站上的一个页面不是移动响应的(其他的工作)

ruby-on-rails - 为多个资源添加公共(public)路由