ruby-on-rails - 忽略 ActiveRecord 属性的存在?
问题描述
有没有一种优雅的方法来告诉 Rails 假装某个特定代码块的属性不存在?我正在对 ActiveRecord 模型进行一些元编程,它可能定义了也可能没有定义特定属性。我试图弄清楚如何测试未定义属性的情况。
解决方案
是的!ActiveRecord::AttributeMethods#has_attribute?
true
如果给定的属性在属性哈希中,则返回,否则false
我可以将其称为类或实例方法。例如
MyModel.has_attribute? :attribute_name
MyModel.first.has_attribute? :attribute_name
更好的是:
您可以使用普通的旧红宝石method_defined?
推荐阅读
- c# - 预计一个
但发现了一个 “你调用的对象是空的。” - java - 有没有办法使用 java 查找文件编码类型(UTF-8 或 ANSI 或 Cp1252 或其他)
- laravel - 方法 eloquent 中自定义私有函数的求和结果
- typescript - 命名空间未标记为仅类型声明
- android - 如何在片段类中使用 kotlin 在 android 设备上强制振动
- javascript - 将数据从 django 视图传递到 Javascript 文件
- ios - 加载资源失败:此服务器的证书无效。- 在 IOS 的 iframe 中使用我的网站时出错
- javascript - HTML 音频 - 提供的音量 (-0.1) 超出范围 - 数学最大值不起作用
- python - 如何在不使用 tf 记录的情况下训练 tf 对象检测 api 模型
- node.js - 如果有未提交的 git 更改,NPM 脚本应该会失败