Rails ActiveRecord非db属性?

时间:2015-06-22 13:45:57

标签: ruby-on-rails activerecord

我有一个ActiveRecord模型Instance,它基于数据库,但有一些非数据库属性。

一个例子是'决议'。

我需要能够设置/获取分辨率,但此属性需要自定义非db setter / getters。我在哪里放这些&我该如何构建我的模型?

我还需要能够验证通过正则表达式设置的分辨率。我可以使用validates_format_of还是需要编写自定义验证码?

1 个答案:

答案 0 :(得分:2)

如果您需要标准的读/写方法,可以使用attr_accessor

class Instance
  attr_accessor :resolution
end

您也可以自己编写读写器方法:

class Instance
  def resolution
    @resolution
  end

  def resolution=(value)
    @resolution = value
    validate! # this will raise RecordInvalid if the validation fails
  end
end