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
データベースに永続化されていないのはなぜですか?