新手问题 如何在 model 中添加一个属性,默认值为:与该 model 数据相关的动态值

jmmbite · 2018年07月11日 · 最后由 pinewong 回复于 2018年07月11日 · 4 次阅读
class Topic < ApplicationRecord
  attribute :uid, :string, default: <默认为id加密>
end

一般可以这样赋值一个静态值,但是我打算赋一个与 topic 的数据中相关的值,因为并不打算把 uid 存入数据库。

列如: Topic.new => id : nil, uid: nil

Topic.first => id: 1, uid: Digest::MD5.hexdigest(1)

想知道,可以从那个地方入手?

共收到 1 条回复

default 参数是支持块的,可以用块传动态值:

attribute :uid, :string, default: proc { Digest::MD5.hexdigest(1) }
jmmbite 关闭了讨论 07月12日 20:55
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册