我正在try 覆盖ActiveRecord模型的getter方法.在Category模型中,我有一个名为name的属性,我希望能够这样做:

def name
  name_trans || name
end

如果name_trans属性不是nil,则返回它,否则返回name属性.我该怎么做?

这通常应该这样称呼:

@category.name

推荐答案

Rails Style Guide建议使用self[:attr]而不是read_attribute(:attr).

你可以这样使用它:

def name
  name_trans || self[:name]
end

Ruby-on-rails相关问答推荐

在VP中部署rails 7和nginx

在URL中将下划线更改为连字符Ruby on Rails

组织和/或存储我一直在 RSpec 中使用的模拟对象的最佳方式是什么?

Ruby:如何通过谓词将一个集合拆分为 ruby​​ 中的两个集合?

在 Rails 3 中,如何在路由中使用锚点作为 ID?

如何使用 Rails 3 / Rack 在没有 www 的情况下重定向?

Rails Migration将字符串转换为整数?

在 Rails 中找不到关联问题

在命名空间内设计

Rails 4,使用 ActiveRecord 的原始查询

Rails 3:如何正确显示textarea中的文本?

使用 Devise 令牌登录,这是内置的吗?

Rails:删除级联与依赖销毁

Rails如何对列求和?

Ruby 和 Ruby on Rails 离线 API 文档

Ruby on Rails 基本概念总结

导轨链接到:远程

为什么 Ruby on Rails 使用 http://0.0.0.0:3000 而不是 http://localhost:3000?

错误:无法构建 gem 原生扩展 - 安装 mysql2 时出错

rails路由中资源和资源之间的区别?