ruby-on-rails - 访问与 Activerecord 访问器分开的数据库值

标签 ruby-on-rails activerecord

我正在尝试设置我自己的方法来覆盖数据库属性,以便我可以拦截数据库值为 null 的值。

Rails 似乎允许我设置一个与数据库列同名的方法,但是我需要另一种方法来访问数据库值以返回我想要的。

想象一下,我有一个数据库列“日期”,当它在数据库中为空时,我想将其设置为其他内容。

我想设置一个方法如下

def date
 if (alternative_db_value_object).date == nil
  "Put this"
 else
  "Put that"
 end
end

或者,如果有人能提出更好的方法,我将不胜感激。

最佳答案

.. 在“日期”方法中,您可以使用

self[:date]

或者
read_attribute(:date)

更新:这似乎不再适用于 rails 5。一个应该使用 super :
def length=(minutes)
  super(minutes.to_i * 60)
end

def length
  super / 60
end

关于ruby-on-rails - 访问与 Activerecord 访问器分开的数据库值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914780/

相关文章:

ruby-on-rails - Rails 与几乎所有其他模型的关联

php - 使用 Codeigniter 的 ActiveRecord 语法构建包含 UNION 和子查询的 SELECT 查询

javascript - 从 javascript 访问 Rails 路径

ruby-on-rails - Ruby 的自动代码质量工具?

php - Yii2 形式的关系属性

ruby-on-rails - 带有自定义类名的belongs_to 不能在Rails 3 中生成正确的外键

ruby-on-rails - 偏移量不选择不同的值

sql - ActiveRecord 查询以避免需要对结果进行额外处理

ruby-on-rails - 删除 Devise Flash 注销通知

javascript - 目录 : Accept File Upload and Copy&Paste Upload