我的用户模型没有:name
字段,但我希望在我的注册表单中包含:name
字段,该字段将用于在{{1}中创建另一个模型的记录}}
after_create
如何从注册表单中获取名称?
答案 0 :(得分:4)
在你的模型中添加attr_accessor作为名称
attr_accessor :name
这将允许您将其添加到表单并使用它在after_create中生成正确的数据
答案 1 :(得分:2)
就像@trh说你可以使用attr_accessor一样,但如果你需要让它做一些逻辑,你需要在attr_accessor上配置getter和/或setter方法。
class User < ActiveRecord::Base
attr_accessor :name
after_create :create_thing
def name
#if need be do something to get the name
"#{self.first_name} #{self.last_name}"
end
def name=(value)
#if need be do something to set the name
names = value.split
@first_name = names[0]
@last_name = names[1]
end
private
def create_thing
@thing = Thing.new
@thing.name = self.name
@thing.save!
end
end