ruby-on-rails - 为什么 ActiveModel::Errors.new(self) 不适用于长度,而是使用计数和大小方法?
问题描述
当我ActiveModel::Errors
在 Rails 5 中使用并在count
, length
,size
方法中进行了一些比较时,我发现
ActiveModel::Errors.new(self).count ==> 0 #result
ActiveModel::Errors.new(self).length ==> undefined method `length' #error
ActiveModel::Errors.new(self).size ==> 0 #result
我试图找到原因,但我找不到。请帮助我为什么length
不工作,但count
工作size
。
解决方案
这是因为ActiveModel::Errors
根本没有实现一个名为length
.
如果您想Hash
从对象中获取 a 以便使用count
,length
和size
, 请将ActiveModel::Errors
对象转换为Hash
using.to_hash
利用Rails 文档来帮助探索 Rails 中可用的类和实用程序。
推荐阅读
- laravel - 将 sendgrid 的事件 webhook 路由到 laravel 中的控制器
- flutter - ChangeNotifier 不更新消费者
- uart - 如何使用 bsl 擦除 msp430f2619 闪存?
- android - Android Firebase 库,仪器测试 - 无静态方法 registerDefaultInstance(Ljava/lang/Class;Lcom/google/protobuf/GeneratedMessageLite
- android - 在 WebView 中打开 PDF
- haproxy - haproxy 并不总是记录请求
- json - 如何在linux中存储json键值对并将其存储在一个变量中
- r - NA / NaN / Inf 调用外部函数 (arg 5)
- ios - 在 inputBarAccessoryView 中按下发送后如何清除 MessageKit inputBar 中的文本
- ruby-on-rails - Rails ActiveRecord 方法保存!保存数据但db中没有记录