在 Rails 4 中,我有一个与 和 有关系的消息user
模型template
。它也有它自己的属性,text
。
class Message < ActiveRecord::Base
attr_accessor :text
belongs_to :user
belongs_to :template
validates :user, presence: true
validates :template, presence: true
validates :text, presence: true, if: lambda { |message| message.template.present? }
def initialize(args = {})
super
@user = args[:user]
@template = args[:template]
@text = args[:text] || (args[:template].text if args[:template].present?)
end
end
这是我的问题:(假设我有一个user
并且template
已经)当我运行message = Message.create!(user: user, template: template, "hello world")
message.text
时将等于"hello world"
,但是当我从他的数据库中检索这条记录时,它的text
属性是nil
,并且所有其他属性都可以。
是什么赋予了?为什么text
没有被持久化到数据库中?