ruby-on-rails - rails 自定义验证器 - 添加到模型或 Controller 中的错误?

标签 ruby-on-rails ruby model validation

我看到模型中使用了自定义验证器(很好),但我也看到验证器本身添加到记录错误对象中。
例如我懂了 (更改示例)

class Title < ActiveRecord::Base
   # implement the method called during validation
   def validate_each(record, attribute, value)
     record.errors[attribute] << 'must be Mr / Mrs / Dr.' unless ['Mr.', 'Mrs.', 'Dr.'].include?(value)
   end
end

这感觉有点像应该在 Controller 中完成的状态事情,验证应该只返回 true/false 但也许不会。

最佳答案

我倾向于这种模式:

errors.add[:name] << :invalid_honorific

其中模型设置的错误是一个符号(更像是一个错误代码),然后由 View 层处理,.yml 文件等等。这避免了在模型中放置过多的表示层内容。

关于ruby-on-rails - rails 自定义验证器 - 添加到模型或 Controller 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8169797/

相关文章:

ruby-on-rails - 使用 Rails 进行不区分大小写的 Postgres 搜索

ruby-on-rails - 如何获取 Paypal 交易 ID 并在 ruby​​ on rails 中进行退款

ruby-on-rails - Rails 同时创建和更新 2 个模型记录

ruby - 为什么我的 define_method 内容在类范围内被评估?

javascript - 使用连接表元数据创建 Rails 4 表单

ruby-on-rails - rails,如何从 url 字符串中获取参数?

用于构建动态填充模型的 mySQL 查询

ruby-on-rails - 嵌套时如何实现太阳黑子搜索

python - django外键保存文件名而不是对象

c++ - Qt 5.2模型- View -模式: How to inform model object about changes in underlying data structure