[英]Metaprogramming in Ruby On Rails
我有一个字符串数组: ["users", "torrents", "comments"] 这些字符串是我的 bd 表的名称。
我如何 in.each 循环连接到这些表并选择|插入一些数据?
避免使用eval
这是一个使用constantize
的简单解决方案
注意: constantize
不允许评估任意代码,它只会尝试获取 ruby 常量,即Class
["users", "torrents", "comments"].each do |table_name|
# "users" => "User"
# or more complex
# "some_models" => "SomeModel"
#
class_name = table_name.singularize.camelize
# "User" => User
model_class = class_name.constantize
# do something with it
model_class.create!(:value => 12345)
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.