繁体   English   中英

Ruby On Rails 中的元编程

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM