我在Rails中定义了自己的AR类,其中包括用户字段0-9的动态创建实例方法。这些用户字段不会直接存储在数据库中,因为它们很少被使用,所以它们将被序列化在一起。以下是最佳实践吗?还有其他替代方案吗?
启动添加方法的代码应该从哪里调用?
启动添加方法的代码应该从哪里调用?
class Info < ActiveRecord::Base
end
# called from an init file to add the instance methods
parts = []
(0..9).each do |i|
parts.push "def user_field_#{i}" # def user_field_0
parts.push "get_user_fields && @user_fields[#{i}]"
parts.push "end"
end
Info.class_eval parts.join
[i]
会按预期工作,因为方法定义是一个块,在Ruby中,块是闭包。希望有所帮助。 - Marc-André Lafortune