在ruby中使用“定义写入方法”是什么,我试图理解它,但没有得到它?

时间:2014-06-27 14:31:27

标签: ruby-on-rails ruby metaprogramming

def define_write_method(attr_name)
  evaluate_attribute_method attr_name, "def #{attr_name}=(new_value);write_attribute('#{attr_name}', new_value);end", "#{attr_name}="
end

这仅适用于文档,但无法提供theoritack说明,请提前致谢。

1 个答案:

答案 0 :(得分:0)

它看起来像是添加到ActiveRecord对象的方法之一。 AR从数据库中读取架构信息,并为所有列创建编写器方法。

这样,您可以将您的AR类指向表(或让约定执行此操作),并能够将数据“写入”对象。保存时,所有这些属性都将保留在数据库中。