2

我想在 Rails3.2 中显示一个变量(实际上是一个列表)作为 f.select(..) 函数的一部分,以便将所选值存储在 ActiveRecord 对象的不同属性中。如何在 ActiveRecord 中将上述 List 变量声明为瞬态变量,以便 ActiveRecord 不会尝试存储它。

4

2 回答 2

2

您可以像这样在模型中编写自己的 getter 和 setter 方法(不要忘记将其添加到 attr_accessible):

def virtual_attr=(value)
  self.real_attr = value
end

def virtual_attr
  self.real_attr
end

或者只是为真实属性创建一个别名,如下所示:

alias_attribute :virtual_attr, :real_attr
于 2012-11-04T15:28:16.020 回答
2

在 rails 4+ 中,您可以通过以下方式在模型中定义瞬态字段:

attr_accessor :the_field
于 2018-06-04T22:28:39.327 回答