【发布时间】:2011-07-03 18:06:06
【问题描述】:
我正在使用 Ruby 和 Rails,所以任何 Rails 的 Ruby 扩展都应该没问题。
我想知道是否有一种方法可以有效地强制实例变量(而不是它们的 setter 和 getter)上的类型,这比手动定义它们更容易。
attr_accessor 等类方法不强制类型。例如,我注意到 Rails 的 ActiveRecord::Base 类对 setter 进行自动转换。它从数据库中得知一个特定的活动记录变量是一个整数,并用@record.integer_variable = '1' 设置它会自动转换参数并允许通过@record.integer_variable # => 1 进一步访问。
有没有办法利用这个?
我可以将自己的 getter 和 setter 编写为类方法,但如果更聪明的人已经完成了繁重的工作,我宁愿不必相信自己。
【问题讨论】:
标签: ruby-on-rails ruby