【发布时间】:2010-09-19 23:33:02
【问题描述】:
我有一个 Person 模型。创建新的 Person 时,我想在控制器中设置一个 random_variable 并将其作为 @person 对象的一部分传递。我试过了
型号
attr_accessor :random_variable
控制器:
def create
@person = Person.new(params[:person])
@person.random_variable = 'A Random string'
@person.save
end
不幸的是,如果我尝试访问模型中的 self.random_variable,这不起作用(我得到 nil)。
有人可以解释为什么这不起作用,以及如何去做吗? (是的,我知道这并不真正符合 MVC 约定,但做我需要的唯一其他方法是非常重的非干控制器)
【问题讨论】:
-
我想我们应该假设您正在使用 active_record 并且 random_variable 是您的 Person 对象的数据库中的实际属性?一些模型代码和该模型的架构可能会有所帮助。
-
使用活动记录,但 random_variable 不是真正的数据库属性,因此 attr_accessor
-
能否提供Person模型的源代码?
标签: ruby-on-rails ruby model-view-controller