新手问题 请问 Rails 有办法在 Model 里映射数据库的字段名吗?

lukertty · 2018年09月03日 · 最后由 flyweights 回复于 2020年06月23日 · 1603 次阅读

大家好!在用 rails 开发一个业务的小模块,数据库里的表都是之前定死的,前面都有一个前缀表示该业务在系统中的位置,比如说

redpack_records_employee_name ## -> 红包记录中记录的员工名,希望映射成 employee_name (整个项目就只开发redpack_records,不需要重复指定)
redpack_records_openid
## 等等

有没有这样一个方法可以让 rails 字段名产生映射关系,而不影响其他功能的正常使用。我所知的,表名和主键是可以指定的,其他字段就不知道了。

class Record < ApplicationRecord
  self.table_name = 'redpack_records'
  self.primary_key = 'redpack_records_id'
end

直接写方法来指定行不行?

def employee_name
  self.redpack_records_employee_name
end

def employee_name=(value)
  self.redpack_records_employee_name = value
end
2 楼 已删除

attribute_alias

attribute_method_prefix 定义前缀

lekyooz 回复

应该是 alias_attribute 吧。看了一下,这个应该就是我需要的。

lukertty 回复

就是这个啦,别名属性

需要 登录 后方可回复, 如果你还没有账号请 注册新账号