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

jmmbite · July 11, 2018 · Last by pinewong replied at July 11, 2018 · 1043 hits
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)

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

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

attribute :uid, :string, default: proc { Digest::MD5.hexdigest(1) }
jmmbite closed this topic. 12 Jul 20:55
You need to Sign in before reply, if you don't have an account, please Sign up first.